【问题标题】:Defining 1 logback file per level [duplicate]每个级别定义 1 个 logback 文件 [重复]
【发布时间】:2012-02-17 08:48:14
【问题描述】:

我想定义一个 logback 配置文件,它将能够:

  • 在 debug.log 中记录 DEBUG(及更高版本)内容
  • 在 info.log 中记录 INFO(及更高版本)内容

也就是说,当我打电话时:

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

有可能吗?

我试过这样的东西,但是当logback遇到多个标签时,它似乎只需要最后一个:

<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 包含调试级日志:(

请注意,我想将此行为应用于我的每个包。

【问题讨论】:

标签: java logging logback


【解决方案1】:

使用 levelFilter 解决了这个问题

例子:

<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>

【讨论】:

  • 请注意,虽然docs 说应该只有 1 个root,但这似乎是唯一的方法。
  • 你不能使用 -
  • @denov 当然,忘记更新答案(现在已经完成)
猜你喜欢
  • 1970-01-01
  • 2016-05-24
  • 2016-12-13
  • 2022-01-25
  • 2012-05-30
  • 2023-03-30
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
相关资源
最近更新 更多