欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot的日志配置logback

程序员文章站 2022-07-03 15:37:16
...

 

  • application.yml


#  logback-spring.xml优先级高,
#  没有特殊要求可以不用logback-spring.xml这个配置文件,只需要下面配置就可以
#  max-history(单位天)max-size(支持KB/MB/GB)
#  logback的默认配置文件在spring-boot:2.1.6.RELEASE的包里面
logging.file: "/opt/logs/app.log"
logging:
  file:
    max-size: 200MB
    max-history: 15
    total-size-cap: 20G
  level:
    root: INFO
    org.springframework: DEBUG
  pattern:
    console: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%t]){faint} %clr(%-40.40logger{39}){cyan}[lineno:%line]    %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}"
    file: "%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39}[lineno:%line]: %m%n${LOG_EXCEPTION_CONVERSION_WORD:%wEx}"
#  config: "classpath:logback-spring.xml"
  • logback-spring.xml

其中APP_NAME修改为自己的应用名字

<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />

    <!--定义参数,后面可以通过${APP_NAME}使用-->
    <property name="APP_NAME" value="app-start" />
    <property name="LOG_PATH" value="${user.home}/${APP_NAME}/logs" />
    <property name="LOG_FILE" value="${LOG_PATH}/application.log" />

    <appender name="APPLICATION"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!--定义日志输出的路径-->
        <file>${LOG_FILE}</file>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>7</maxHistory>
            <maxFileSize>200MB</maxFileSize>
            <totalSizeCap>20GB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!--rootLogger是默认的logger-->
    <root level="INFO">
        <!--定义了两个appender,日志会通过往这两个appender里面写-->
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="APPLICATION" />
    </root>

    <!--应用日志-->
    <!--这个logger没有指定appender,它会继承root节点中定义的那些appender-->
    <logger name="org.swhysc" level="DEBUG"/>

    <!--数据库日志-->
    <!--由于这个logger自动继承了root的appender,root中已经有stdout的appender了,自己这边又引入了stdout的appender-->
    <!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况-->
    <!--additivity表示要不要使用rootLogger配置的appender进行输出-->
    <logger name="com.apache.ibatis" level="TRACE" additivity="false">
        <appender-ref ref="CONSOLE"/>
    </logger>
</configuration>
  • 验证

可以修改下面三个值测试,例如max-size=10KB

max-size: 200MB
max-history: 15
total-size-cap: 20G