java - logback 没有记录到文件

标签 java logging log4j logback

试图让 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/

相关文章:

java - InfluxDB 是否提供 Java API?

java - 找不到适合 jdbc :oracle:thin:@localhost:1522:xe 的驱动程序

java - 为什么我在使用 Spring Boot 应用程序的 postman 中没有收到错误消息

python - werkzeug:登录到文件时禁用 bash 颜色

asp.net-mvc - 从 Asp.net core 中的日志记录中排除自定义异常类

java - 在 Web 应用程序中使用 log4j 的最佳方式是什么?

java - 如何使用gwt-gradle输出静态内容?

asp.net-mvc - 为什么 elmah.axd 重定向到/Account/Logon?

java - 将日志文件保存在 .properties 文件的相对路径中

java - log4j 仅记录来自文件中特定类的消息