试图让 logback 记录到 .log 文件,但它只输出到控制台... 有任何想法吗?
这里是 logback-test.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
<appender
name="STDOUT"
class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<appender
name="FILE"
class="ch.qos.logback.core.FileAppender">
<file>C:/Users/aahmad/Desktop/logbackTestFiel.log</file>
<append>false</append>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%-4r %-5level %logger{35}: %msg%n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE"/>
</root>
</configuration>
这是代码
package log.back.test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;
public class HelloWorld2 {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger("chapters.introduction.HelloWorld2");
logger.debug("Hello world.");
logger.info("Hello file");
logger.error("Hello 2 world.");
// print internal state
// LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
// StatusPrinter.print(lc);
}
}
感谢您的帮助...另外,有人知道 org.apache.log4j.helpers.OnlyOnceErrorHandler
的 logback 等价物是什么吗?我实际上正在进行迁移,log4j 声明了这一点
<errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
但是我不知道这是什么 logback 版本
最佳答案
好的,明白了,需要在 appender 中添加一个额外的标签
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
</rollingPolicy>
这解决了我的问题,但仍然不确定 errorHandler
关于java - logback 没有记录到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864106/