spring-boot - logback.xml 到 logback 属性文件

标签 spring-boot logback spring-logback

我有一个 logback.xml 文件,它配置了在我的 spring boot 应用程序中应该如何完成日志记录。我想将其更改为 .properties 文件。但是我找不到任何文档。

<?xml version="1.0" encoding="UTF-8"?>

<property name="LOG_FILE" value="${user.home}/my_logs/logs"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </layout>
</appender>

<appender name="FILE-AUDIT"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>DEBUG</level>
    </filter>
    <file>${LOG_FILE}-debug.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover weekly -->
        <fileNamePattern>${LOG_FILE}-debug.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxHistory>7</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

</appender>

<appender name="FILE-ERROR"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>
    <file>${LOG_FILE}-error.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover weekly -->
        <fileNamePattern>${LOG_FILE}-error.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxHistory>7</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

</appender>
<appender name="FILE-INFO"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <file>${LOG_FILE}-info.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger %c:%L - %msg%n
        </Pattern>
    </encoder>

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- rollover weekly -->
        <fileNamePattern>${LOG_FILE}-info.%d{yyyy-MM-dd}.%i.log
        </fileNamePattern>
        <maxHistory>7</maxHistory>
        <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
    </rollingPolicy>

</appender>

<root level="ALL">
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="FILE-AUDIT"/>
    <appender-ref ref="FILE-ERROR"/>
    <appender-ref ref="FILE-INFO"/>
</root>

<logger name="com.*******.*****.webservices" level="DEBUG"/>
<logger name="org.springframework" level="WARN"/>
<logger name="springfox.documentation" level="WARN"/>
<logger name="org.hibernate" level="ERROR"/>
<logger name="org.apache.http" level="WARN"/>
<logger name="org.apache.activemq" level="WARN"/>
<logger name="com.zaxxer.hikari" level="WARN"/>
<logger name="net.sf.ehcache" level="WARN"/>
<logger name="org.apache.velocity" level="WARN"/>
<logger name="com.amazonaws" level="WARN"/>
<logger name="org.apache.tomcat" level="WARN"/>

如何把上面的.xml文件转换成.properties文件。是否有可用的文档或示例。我有一份说明如何配置 log4j.properties 文件的文档,我可以使用相同的文件吗?

最佳答案

Logback 本身仅支持 XML 和 Groovy for configuration .但是,Spring Boot 有自己的日志配置,它是通过您的应用程序属性文件配置的,然后用于配置您正在使用的任何日志框架。引用Logging chapter Spring Boot 文档以及 How-to Logging Guide .

正如该操作指南所说,配置的应用程序属性方法仅真正处理设置日志记录级别和可选地写入除控制台之外的文件。如果你想做比这更复杂的事情,从你的 logback.xml 文件的外观来看,你需要像你已经在做的那样使用完整的日志记录配置文件。没有配置 Logback 的 .properties 方法。

Log4j 是一个不同于 Logback 的日志记录系统,所以我不确定您为什么要查看 log4j 文档,除非您想使用 Log4j 而不是 Logback。您当然可以从项目中删除 Logback 并改用 Log4j,然后使用 Log4j 配置文件(例如 log4j.properties),这样您就可以使用属性文件而不是 XML 文件来配置日志记录,但我希望这只是您要用来决定为您的应用程序使用哪个日志记录框架的过程的一小部分。

关于spring-boot - logback.xml 到 logback 属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925150/

相关文章:

java - Logback RollingFileAppender FileNotFoundException

java - Bean 生命周期 - afterPropertiesSet()

spring - 为单个 Spring Boot 实例配置多个模板解析器

spring - 使用来自不同数据库的 bean hibernate DuplicateMappingException

java - 使用 logback,如何添加依赖于平台的日志文件附加程序?

java - 如何使用 Logback 记录同一类中的 2 个不同文件?

java - spring-boot 创建 logging.path_IS_UNDEFINED.log 文件

gradle - 使用gradle-docker-plugin将docker服务器IP设置为环境变量

windows - 在 Windows 10 64 位上控制台显示的 ANSI 编码时登录异常

spring-boot - ClassNotFoundException : org. slf4j.impl.StaticLoggerBinder