每个级别定义1个回溯文件 [英] Defining 1 logback file per level

查看:102
本文介绍了每个级别定义1个回溯文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想定义一个能够执行以下内容的logback配置文件:

I'd like to define a logback configuration file that will be able to :


  • 在调试中记录DEBUG(和更高版本)的东西.log

  • 在info.log中记录信息(和更高)的东西

这是比方说,当我打电话时:

That is to say, when I call :

logger.warn("blah"); // Logs to both info.log and debug.log
logger.debug("bleh"); // Logs to debug.log only

是否可以?

我试过这样的事情,但似乎当logback遇到多个< root>标签时,它只需要最后一个:

I tried something like this, but it seems like when logback encounters multiple <root> tags, it only takes the last one :

<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${LOGS_FOLDER}/info.log</File>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>
<appender name="debugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>${LOGS_FOLDER}/debug.log</File>
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

<root level="INFO">
  <appender-ref ref="infoFile" />
</root>
<root level="DEBUG">
  <appender-ref ref="debugFile" />
</root>

这里,info.log包含调试级日志:(

Here, info.log contains debug-level logs :(

请注意,我想在我的软件包的每个上应用此行为。

Note that I want to apply this behaviour on every of my packages.

推荐答案

使用levelFilter解决了问题

Using a levelFilter solved the problem

示例:

<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <File>${LOGS_FOLDER}/info.log</File>
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>INFO</level>
    <onMatch>ACCEPT</onMatch>
    <onMismatch>DENY</onMismatch>
  </filter>
  <encoder>
    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>
<appender name="debugFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <File>${LOGS_FOLDER}/debug.log</File>
  <encoder>
    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

<root level="DEBUG"><!-- Using the lowest level here -->
  <appender-ref ref="debugFile" />
  <appender-ref ref="infoFile" />
</root>

这篇关于每个级别定义1个回溯文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆