zoukankan      html  css  js  c++  java
  • springboot日志配置

    springboot默认是用logback来记日志的。每次启动服务时见下面最先打印出来的日志:

    "C:Program FilesJavajdk1.8.0_40injava.exe" ...
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/D:/workspace/m3/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/D:/workspace/m3/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
    
    、、、各种初始化、、、
    、、、接下来是那个熟悉的图标、、、
    
      .   ____          _            __ _ _
     /\ / ___'_ __ _ _(_)_ __  __ _    
    ( ( )\___ | '_ | '_| | '_ / _` |    
     \/  ___)| |_)| | | | | || (_| |  ) ) ) )
      '  |____| .__|_| |_|_| |_\__, | / / / /
     =========|_|==============|___/=/_/_/_/
     :: Spring Boot ::        (v2.1.7.RELEASE)

    如果不做日志配置,默认是在服务下生成spring.log。

    要自定义日志配置,简单的说,可在application.properties里借助logging.file或logging.path做如下设置:

    logging.file=logs/draft_spider.log
    logging.level.com.draft.mapper= debug

    因为系统不同业务日志量较大,为了方便定位日志快速排查问题,我要把某个业务的日志打印在特定的文件里。于是,在项目的resources下创建logback.xml,细化日志的记录。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration scan="false" scanPeriod="300 seconds" debug="true">
        <!--本地日志目录-->
        <property name="USER_HOME" value="logs/"/>
        <property name="LOG_MSG" value="%X{sid}%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p [%c:%L] - %m%n"/>
        <property name="LOG_DIR" value="${USER_HOME}/%d{yyyyMMdd}"/>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>${LOG_MSG}</pattern>
            </encoder>
        </appender>
    
        <appender name="INFO_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${USER_HOME}/spider_info.log</file>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_DIR}/spider_info%i.log</fileNamePattern>
                <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>20MB</maxFileSize>
                </TimeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>${LOG_MSG}</pattern>
            </encoder>
        </appender>
        <appender name="ORDERLIST_SPIDER_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${USER_HOME}/orderlist_spider.log</file>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_DIR}/orderlist_spider%i.log</fileNamePattern>
                <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>20MB</maxFileSize>
                </TimeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>${LOG_MSG}</pattern>
            </encoder>
        </appender>
    
        <appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <file>${USER_HOME}/spider_error.log</file>
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>${LOG_DIR}/spider_error%i.log</fileNamePattern>
                <TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>20MB</maxFileSize>
                </TimeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>
            <encoder>
                <pattern>${LOG_MSG}</pattern>
            </encoder>
        </appender>
    
        <!--<logger name="druid.sql.Statement" level="DEBUG" additivity="false">-->
        <!--<appender-ref ref="SQL_LOG"/>-->
        <!--</logger>-->
        <logger name="spiderLog" level="DEBUG" additivity="false">
            <appender-ref ref="ORDERLIST_SPIDER_LOG"/>
        </logger>
        <logger name="com.draft.processor.TcpjwPageProcessor" level="DEBUG" additivity="false">
            <appender-ref ref="ORDERLIST_SPIDER_LOG"/>
        </logger>
        <logger name="com.draft.task.SpiderTaskPage" level="DEBUG" additivity="false">
            <appender-ref ref="ORDERLIST_SPIDER_LOG"/>
        </logger>
        <logger name="com.draft.task.SpiderTask" level="DEBUG" additivity="false">
            <appender-ref ref="ORDERLIST_SPIDER_LOG"/>
        </logger>
    
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="ERROR_LOG"/>
            <appender-ref ref="INFO_LOG"/>
            <!--<appender-ref ref="ORDERLIST_SPIDER_LOG"/>-->
        </root>
    </configuration>

    ref:Spring Boot系列——日志配置

  • 相关阅读:
    Fluent UDF【1】:简介
    CFD使用者应当了解的一些事情
    关于CAE的那点儿破事儿【二】
    sau交流学习社区--看小说的lovebook一个无线端BS应用
    sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证
    mysql数据库NO CONNECTION问题分析以及解决方案
    sau交流学习社区第三方登陆github--oauth来实现用户登录
    微信小程序初体验,入门练手项目--通讯录,部署上线(二)
    快速新建简单的koa2后端服务
    docker初体验,搭建自用的gitlab服务
  • 原文地址:https://www.cnblogs.com/buguge/p/11469122.html
Copyright © 2011-2022 走看看