我编写了一个简单的程序,其中使用了Logback
。我的意图是使用ASYNS,内部使用STDOUT。
以下是Java代码列表:
package com.example;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogBackMainApp {
private static final Logger LOGGER =
LoggerFactory.getLogger(LogBackMainApp.class);
public static void main(String[] args) throws InterruptedException {
LOGGER.info("Hello world");
LOGGER.info("Hello world again");
Thread.sleep(5000);
}
}
以下是配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" >
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level %logger{0}:%L
If you required class name ,enable %logger{0}:%L -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %thread %-5level - %msg
%n</pattern>
</encoder>
</appender>
<appender name="ASYNC-STDOUT" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>1</queueSize>
<discardingThreshold>20</discardingThreshold>
<neverBlock>true</neverBlock>
<appender-ref ref="STDOUT" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC-STDOUT" />
</root>
我正在定义root
记录程序,该记录程序将适合我的com.example
程序包,它指向ASYNC-STDOUT
,内部使用ch.qos.logback.core.ConsoleAppender
。
根据我目前的理解,它应该能够登录到控制台。但是,什么都没有。我的代码或配置中有问题吗?或者我想完全了解这个概念吗?
答案 0 :(得分:0)
如果您使用maven,请查看:Dependency management for SLF4J and Logback。也许您缺少必需的依赖项。 Sl4j只是您真正的记录器实现的抽象,必须作为依赖项添加。