Package groovy.util.logging

# Annotation Type Log4j

    @Documented
    @Retention(SOURCE)
    @Target(TYPE)
    public @interface Log4j

This local transform adds a logging ability to your program using Log4j 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.isNameEnabled() {
        log.name(exp)
     }

Here name is a place holder for info, debug, warning, error, etc. 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` | `Log4j.Log4jLoggingStrategy` |

- ## Optional Element Summary

  Optional Elements
  Modifier and Type | Optional Element | Description
  --- | --- | ---
  `java.lang.String` | `category` |
  `java.lang.Class<? extends LogASTTransformation.LoggingStrategy>` | `loggingStrategy` |
  `java.lang.String` | `value` |
  `java.lang.String` | `visibilityId` | If specified, must match the "id" attribute in a VisibilityOptions annotation to enable a custom visibility.

- ## Element Details

  - ### value

    java.lang.String value
    Default:
      "log"

  - ### category

    java.lang.String category
    Default:
      "##default-category-name##"

  - ### visibilityId

    java.lang.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

    java.lang.Class<? extends LogASTTransformation.LoggingStrategy> loggingStrategy
    Default:
      groovy.util.logging.Log4j.Log4jLoggingStrategy.class