java - Logback:如何仅将错误记录到文件

标签 java logging slf4j logback

我已经阅读了 2 小时的 logback 手册,但仍然不知道如何做我需要的事情。

正如标题所说的那样简单:我只想将错误记录到文件中,其他级别(包括 ERROR)到控制台。

这是我的 logcat.xml 文件的根部分:

    <root level="TRACE" >
        <appender-ref ref="CONSOLE_APPENDER" />
        <appender-ref ref="FILE_APPENDER" />
    </root>

此配置的问题在于它会将每个级别 >= TRACE 记录到两个附加程序。

我可以让 root 只有控制台,并定义一个文件记录器:

    <logger name='file_logger' level='ERROR' >
        <appender-ref ref="FILE_APPENDER" />
    </logger>

但是我必须像这样调用普通记录器:

LoggerFactory.getLogger(ClientClass.class);

文件记录器是这样的:

LoggerFactory.getLogger("file_logger");

我不想为每个类(class)选择记录器。我只想使用类作为参数从工厂获取根记录器,并让它根据级别做正确的事情。

这可能吗?

最佳答案

将其放入您的文件追加器定义中:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>ERROR</level>
</filter>

ThresholdFilterlogback-classic.jar 中。

关于java - Logback:如何仅将错误记录到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689223/

相关文章:

python - 解析字符串的多个日志文件

java - Logback SizeBasedTriggeringPolicy 没有滚动

java - 并行运行 JUnit5 测试但希望保留一些测试顺序

java - Spring Data Rest not working——寻找无限递归错误的根源

java - 使用 JPA 和 Hibernate 的 ORM : EntityManager is null

Android,Log会降低应用程序速度吗?

java - Hibernate,替换hql中的空值

windows - 在 ISAPI 过滤器中,对于多个进程的通用日志文件来说,什么是好方法?

java.lang.NoSuchFieldError : name at run time in hibernate project 错误

cassandra - SLF4J:无法在 [com.datastax.driver.core.Responses$Result$Rows] 类型的对象上调用 toString()