Log (Groovy 2.4.12)
Date: 2017-06-21

groovy.util.logging

## Annotation Type Log

-     @Documented
       @Retention(value=SOURCE)
       @Target(value=TYPE)
      public @interface Log

  This local transform adds a logging ability to your program using java.util.logging. Every method call on a 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 place holder 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
  Author:
    Guillaume Laforge, Jochen Theodorou, Dinko Srkoc, Hamlet D'Arcy, Raffaele Cigni, Alberto Vilches Raton

- - ### Optional Element Summary

    Optional Elements
    Modifier and Type | Optional Element and Description
    --- | ---
    `String` | `category`
    `Class<? extends LogASTTransformation.LoggingStrategy>` | `loggingStrategy`
    `String` | `value`

- - ### Element Detail

    - #### value

          public abstract String value

      Default:
        "log"

  - - #### category

          public abstract String category

      Default:
        "##default-category-name##"

  - - #### loggingStrategy

          public abstract Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy

      Default:
        groovy.util.logging.Log.JavaUtilLoggingStrategy.class