Package groovy.util.logging

# Annotation Interface Log

@Documented @Retention(SOURCE) @Target(TYPE) public @interface Log
This local transform adds a logging ability to your program using java.util.logging. Every method call on an unbound variable named log will be mapped to a call to the logger. For this a log field will be inserted in the class. If the field already exists the usage of this transform will cause a compilation error. The method name will be used to determine what to call on the logger.

     log.name(exp)

is mapped to

     if (log.isLoggable(Level.NAME) {
        log.name(exp)
     }

Here name is a placeholder for info, fine, finer, finest, config, warning, severe. NAME is name transformed to upper case. if anything else is used it will result in an exception at runtime. If the expression exp is a constant or only a variable access the method call will not be transformed. But this will still cause a call on the injected logger.

Since:
  1.8.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `Log.JavaUtilLoggingStrategy`
  This class contains the logic of how to weave a Java Util Logging logger into the host class.

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String`
  `category`
  Returns the logger category name.
  `Class<? extends LogASTTransformation.LoggingStrategy>`
  `loggingStrategy`
  Returns the logging strategy implementation used by this transform.
  `String`
  `value`
  Returns the injected logger field name.
  `String`
  `visibilityId`
  If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.

- ## Element Details

  - ### value

    String value
    Returns the injected logger field name. Defaults to `"log"`.
    Returns:
      the logger field name
    Default:
      "log"

  - ### category

    String category
    Returns the logger category name. Defaults to `LogASTTransformation.DEFAULT_CATEGORY_NAME`, which uses the host class name.
    Returns:
      the logger category name
    Default:
      "##default-category-name##"

  - ### visibilityId

    String visibilityId
    If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.
    Since:
      3.0.0
    Default:
      "<DummyUndefinedMarkerString-DoNotUse>"

  - ### loggingStrategy

    Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy
    Returns the logging strategy implementation used by this transform. Defaults to `Log.JavaUtilLoggingStrategy`.
    Returns:
      the logging strategy type
    Default:
      groovy.util.logging.Log.JavaUtilLoggingStrategy.class