logback配置

摘要:
--scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。--debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。通过定义的值会被插入到logger上下文中。--彩色日志依赖的渲染类--˃debug${CONSOLE_LOG_PATTERN}%d{yyyy-MM-ddHH:mm:ss.SSS}[%thread][line:%line]%-5level%logger{50}-%msg%nUTF-8˂!

在resources下建立logback-spring.xml,这种命名方式,可以结合spring.profile.active做不同环境下的日志配置

logging:
  config: classpath:logback-spring.xml

参考配置:

logback配置第1张

需要在bootstrap.yml或bootstrap-{active}.yml配置好端口和应用名,不然日志名称会有undefined

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<!--scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!--scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
                 当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!--debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration scan="false"scanPeriod="60 seconds"debug="false">
    <contextName>logback</contextName>
    <!--name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
    <springProperty scope="context"name="application_name"source="spring.application.name"/>
    <springProperty scope="context"name="port"source="server.port"/>
    <property name="log.path"value="${user.dir}/logs/${application_name}-${port}/"/>

    <!--0. 日志格式和颜色渲染 -->
    <!--彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr"converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!--彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN"value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%clr(line:%4line)] %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%8.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>

    <!--1. 输出到控制台-->
    <appender name="CONSOLE"class="ch.qos.logback.core.ConsoleAppender">
        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
            <!--设置字符集 -->
            <charset>UTF-8</charset>
        </encoder>
    </appender>

    <!--2. 输出到文档-->
    <!--2.1 level为 DEBUG 日志,时间滚动输出  -->
    <appender name="DEBUG_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--正在记录的日志文档的路径及文档名 -->
        <!--<file>${log.path}/web_debug.log</file>-->
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread][line:%line] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志归档 -->
            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug/%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!--此日志文档只记录debug级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>debug</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--2.2 level为 INFO 日志,时间滚动输出  -->
    <appender name="INFO_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--正在记录的日志文档的路径及文档名 -->
        <!--<file>${log.path}/web_info.log</file>-->
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread][line:%line] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--每天日志归档路径以及格式 -->
            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info/%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!--此日志文档只记录info级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>info</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--2.3 level为 WARN 日志,时间滚动输出  -->
    <appender name="WARN_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--正在记录的日志文档的路径及文档名 -->
        <!--<file>${log.path}/web_warn.log</file>-->
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread][line:%line] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn/%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!--此日志文档只记录warn级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>warn</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!--2.4 level为 ERROR 日志,时间滚动输出  -->
    <appender name="ERROR_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--正在记录的日志文档的路径及文档名 -->
        <!--<file>${log.path}/web_error.log</file>-->
        <!--日志文档输出格式-->
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread][line:%line] %-5level %logger{50} - %msg%n</pattern>
            <charset>UTF-8</charset>
        </encoder>
        <!--日志记录器的滚动策略,按日期,按大小记录 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error/%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>100MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!--日志文档保留天数-->
            <maxHistory>15</maxHistory>
        </rollingPolicy>
        <!--此日志文档只记录ERROR级别的 -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <logger name="net.unifound"level="debug"/>

    <!--additivity的作用在于children-logger是否使用 rootLogger的配置,例如 输出终端。-->
    <logger name="com.alibaba.nacos.client.naming"additivity="false">
        <level value="warn"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="WARN_FILE"/>
    </logger>

    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="DEBUG_FILE"/>
        <appender-ref ref="INFO_FILE"/>
        <appender-ref ref="WARN_FILE"/>
        <appender-ref ref="ERROR_FILE"/>
    </root>

</configuration>

http://www.3kkg.com/1116

https://www.jianshu.com/p/e326af51bee5

免责声明:文章转载自《logback配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Dockerfile构建容器镜像Vue+element UI实现“回到顶部”按钮组件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java日志体系(一)发展历程

一、日志框架的分类 门面型日志框架: JCL:  Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging SLF4J:  是一套简易Java日志门面,本身并无日志的实现。(Simple Logging Facade for Java,缩写Slf4j) 记录型日志...

【日志框架】log4j、log4j2、logback、slf4j等常用的日志框架及门面

一、在Java程序中常用日志框架可以分为两类: 无具体实现的抽象门面框架,如:Commons Logging、SLF4J 具体实现的框架,如:Log4j,Log4j 2,Logback,Jul 二、常用日志框架之间的关系 Log4j2与Log4j1发生了很大的变化,log4j2不兼容log4j1 Commons Logging和Slf4j是日志门面(...

配置logback.xml文件来实现日志文件输出

一、logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch。它当前分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它是log4j的一个改良版本,同时它完整实现了slf4j API使你可以很方便地更换成其它日志系统如log...

Spring boot——logback.xml 配置详解(三)&amp;lt;appender&amp;gt;

阅读目录 1 appender 2  encoder 文章转载自:http://aub.iteye.com/blog/1101260,在此对作者的辛苦表示感谢! 回到顶部 1 appender<appender>是<configuration>的子节点,是负责写日志的组件。 <appender>有两个必要属...

spring boot 集成 log4j 解决与logback冲突问题

现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。 首先在pox.xml中引入对应的maven依赖: <!-- 引入log4j--> <dependency> <groupId>org.springf...

spring-boot整合mybatis(web mysql logback配置)

pom.xml相关的配置说明。 配置文件看着比价多,在创建spring-boot项目的时候,自需要添加web,mysql,mybatis三个选项即可 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns...