#java #logging #slf4j
#java #протоколирование #slf4j
Вопрос:
Я впервые использую SLF4J в своем проекте Maven, но я не могу заставить его выводить что-либо (его создатели, очевидно, не придерживаются философии «полезного поведения по умолчанию»).
Я добавил следующее в свой pom.xml:
<dependency>
<groupId>com.googlecode.sli4j</groupId>
<artifactId>sli4j-slf4j-simple</artifactId>
<version>2.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
И я использую это следующим образом:
final Logger logger = LoggerFactory.getLogger(UdpRemoteConnection.class);
...
logger.error("test error");
Прямо сейчас мне не нужно ничего особенного, мне просто нужно, чтобы это вошло в консоль. Как мне включить это?
Ответ №1:
Моя обычная конфигурация для Java-проектов с Maven:
pom.xml:
...
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.26</version>
</dependency>
...
src/main/resources/logback.xml или / и src/test/resources/logback.xml:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Ответ №2:
Похоже, что вы используете Sli4j вместо Slf4j.
Попробуйте использовать Slf4j напрямую:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
(Я использую 1.5.11 в качестве slg4j.version, но последняя доступная версия — 1.6.1)
Комментарии:
1. А, спасибо. И это должно регистрироваться на консоли без какой-либо дополнительной настройки?
2. Да, slf4j-simple просто выводит на консоль, начиная с уровня info и выше. Лично я не думаю, что это очень хорошая идея использовать его. Для входа в Jdk logger по умолчанию лучше использовать slf4j-jdk14.