logback 文件包含取决于内容的顺序

Posted

技术标签:

【中文标题】logback 文件包含取决于内容的顺序【英文标题】:logback file inclusion depends on sequence of the content 【发布时间】:2013-01-17 01:18:32 【问题描述】:

logback file inclusion 期待按顺序进行配置。我排除了根并保留在$catalina.base/conf/includedConfig.xml

<?xml version="1.0"?>
<included>
  <root level="INFO">
    <appender-ref ref="FILE"/>
  </root>
</included>

和src/main/resources下的logback.xml

<?xml version="1.0"?>
<configuration>
   <include file="$catalina.base/conf/includedConfig.xml"/>

 <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>$catalina.base/logs/logFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logFile.%dyyyy-MM-dd.log</fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%date [%thread] %-5level %logger35 - %msg%n</pattern>
    </encoder>
</appender>

它抱怨找不到附加程序。虽然我改变了标签的位置并在appender之后保留它,但它抱怨同样的错误。

17:05:12,566 |-ERROR in ch.qos.logback.core.joran.action.AppenderRefAction - Cou
ld not find an appender named [FILE]. Did you define it below instead of above in 
the configuration file?

如果我以相反的顺序执行相同的操作,即将附加程序放在外部文件中,并将根放在 logback.xml 中,它可以正常工作。

我想这样做的原因是,我想在构建(相同的工件)被提升到不同的环境时更改日志级别,如果日志级别处于应用程序战争中,这是不可能的。

【问题讨论】:

【参考方案1】:

尝试添加之后 像这样:`

<appender name="all_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>INFO</level>
    </filter>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>./log/mylog_all_info.%dyyyy-MM-dd.log</FileNamePattern>
        <MaxHistory>30</MaxHistory>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <MaxFileSize>5MB</MaxFileSize>
    </triggeringPolicy>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%dyyyy-MM-dd HH:mm:ss.SSS [%thread] %-5level %logger80 - %msg%n</Pattern>
    </layout>
</appender>

<root>
    <appender-ref ref="all_info" level="INFO" />
</root>

`

【讨论】:

以上是关于logback 文件包含取决于内容的顺序的主要内容,如果未能解决你的问题,请参考以下文章

springboot 将logback日志根据不同类输入到不同路径下2(含sql)

Logback的配置文件查找顺序

logback:logback和slf4j中的:appenderloggerencoderlayout

如何在 logback-spring.xml 中包含自定义 xml?

关于logback如何通过当前配置文件获取路径

python项目中包含多个文件&全局内容&函数定义时,语句的执行顺序