Lombok @Log и его друзья

Цикл статей «Project Lombok».

Следующая статья — «Настройка Lombok».
Предыдущая статья — «Lombok @Getter(lazy=true). Лень — это хорошо».

Новое в Lombok 0.10: Вы можете добавить аннотацию логгера к любому классу, чтобы Lombok генерировал поле логгера. Поле логгера имеет имя log, и тип поля зависит от выбранного логгера.

Доступно шесть типов логгеров:

@CommonsLog
Создаёт  private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LogExample.class);

@Log
Создаёт private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LogExample.class.getName());

@Log4j
Создаёт private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LogExample.class);

@Log4j2
Создаёт private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LogExample.class);

@Slf4j
Создаёт private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);

@XSlf4j
Создаёт private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LogExample.class);

По умолчанию тема (или имя) логгера будет имя класса, аннотированного с @Log. Это может быть изменено с помощью параметра topic. Например: @XSlf4j(topic="reporting").

С помощью Lombok

Чистая Java

Поддерживаемые ключи конфигурации

Сгенерированное поле логгера по умолчанию имеет имя log, но вы можете изменить имя на другое с помощью этой настройки.

 

Обычно генерируется статическое поле логгера, но вы можете поменять его на поле экземпляра с помощью этой настройки.

 

Lombok будет помечать любое использование аннотаций логгирования предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.apachecommons.CommonsLog предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.java.Log предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.log4j.Log4j предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.log4j.Log4j2 предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.slf4j.Slf4j предупреждением или ошибкой, если настроено.

 

Lombok будет помечать любое использование @lombok.extern.slf4j.XSlf4j предупреждением или ошибкой, если настроено.

 

Примечания

Если поле с именем log уже существует, то возникает предупреждение (warning), и код для поля не генерируется.

В будущем Lombok будет искать обращения к полю логгирования, и если выбранный фраймворк логгирования поддерживает его, и уровень логгирования может быть определён во время компиляции, обрамляет его оператором if. Если обрамлённый оператор логгирования игнорируется, то потенциально затратное вычисления строки лога исключается полностью.  Это означает, что в вызове метода логгирования вы НЕ должны использовать операции, имеющие какой-либо посторонний эффект, кроме построения строки логгирования.

 

Цикл статей «Project Lombok».

Следующая статья — «Настройка Lombok».
Предыдущая статья — «Lombok @Getter(lazy=true). Лень — это хорошо».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *