我编写了一个使用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包的需要,它指的是内部使用ch.qos.logback.core.ConsoleAppender的ASYNC-STDOUT。
根据我目前的理解,它应该能够登录到控制台。然而,什么也不会发生。在我的代码或配置中是否有什么问题,或者我是否错过了完全理解这个概念。
发布于 2019-07-06 11:59:01
如果使用maven,请看一看:Dependency management for SLF4J and Logback。也许你缺少了所需的依赖。Sl4j只是一个抽象,因为您是真正的记录器实现,必须将其添加为依赖项。
https://stackoverflow.com/questions/56913233
复制相似问题