logback+spring实践

Spring Boot配置log手册

https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.custom-log-configuration

配置文件名称使用:logback-spring.xml
如果使用logback.xml,会在springBoot启动之前就完成logback的配置加载, 造成springBoot不能完全控制log行为

配置user.home是jvm传过来的系统参数,可以直接使用

  <property name="LOG_PATH" value="${user.home}/${APP_NAME}/logs" />

 

 

配置自定义的属性,使用slf4j的MDC功能

 

<appender>中如果提供<file>标签, 则生成的最新文件名没有后缀, 切片后的有后缀

 

<logger> 的属性additivity="false"设置之后,此logger和root无关

 

自动刷新log级别,可以在<configuration>中配置,也可以自己通过controller来改变。 使用spring actual管理,spring环境下不会自动刷新

 

限制log file的大小,  不然占用磁盘会很大

logging.pattern.rolling-file-name   如果fileName以gz结尾,则会自动压缩

 

在不同的profile.properties中指定相应环境的logger级别配置, 创建多个logback-spring-xxx.xml文件, 这样不需要线上发布再改logger级别, 各环境配置比较清晰

org/springframework/boot/logging/logback/defaults.xml 配置了控制台显示时颜色转换器, 打印到文件时没有颜色,class长度也更长

原理:

日志框架冲突

config example

logback-spring.xml, 其他logging.level可以在application.properties中完成

<configuration>
    <!-- https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.logging.custom-log-configuration -->
    <!-- spring-boot-2.3.7.RELEASE.jar -->
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

    <!-- /etc/filebeat/conf.d/logagent_app.yml EXCLUDE this SQL LOG FILE -->
    <appender name="SQL-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <file>log/dxs-sql.txt</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <cleanHistoryOnStart>false</cleanHistoryOnStart>
            <fileNamePattern>log/dxs-sql.%d{yyyy-MM-dd}.%i.txt.gz</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>7</maxHistory>
            <totalSizeCap>0</totalSizeCap>
        </rollingPolicy>
    </appender>

    <logger name="com.xxx.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="SQL-FILE"/>
        <appender-ref ref="CONSOLE"/>
    </logger>

</configuration>
posted @ 2018-09-28 13:23  funny_coding  阅读(656)  评论(0编辑  收藏  举报
build beautiful things, share happiness