Package: groovy.util.logging

## [Java] Annotation Type Log

- groovy.util.logging.Log

-     @Documented
      @Retention(RetentionPolicy.SOURCE)
      @Target(ElementType.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

- - ### Element Summary

    Optional Element Summary
    Type | Name and Description
    --- | ---
    `String` | `category` Returns the logger category name.
    `Class<? extends 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.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Element Detail

    - #### public 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:
        LogASTTransformation.DEFAULT_CATEGORY_NAME

    - #### public Class<? extends LoggingStrategy> loggingStrategy

      Returns the logging strategy implementation used by this transform. Defaults to JavaUtilLoggingStrategy.

      Returns:
        the logging strategy type
      Default:
        JavaUtilLoggingStrategy.class

    - #### public String value

      Returns the injected logger field name. Defaults to `"log"`.

      Returns:
        the logger field name
      Default:
        "log"

    - #### public String visibilityId

      If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.

      Since:
        3.0.0
      Default:
        Undefined.STRING