Log configuration in SpringBoot

By default, Logback is used to print the log
file name: logback-spring.xml, SpringBoot automatically loads the xml file

Log specific configuration instructions

<configuration>
    <!--Display log color in console-->
    <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"/>
    <!--Log file directory-->
    <springProperty scope="context" name="LOG_HOME" source="log.home"  defaultValue="/data/logs/web-admin"/>
    <!--default log level for root -->
    <springProperty scope="context" name="LOG_ROOT_LEVEL" source="log.level" defaultValue="INFO"/>
    <springProperty scope="context" name="STDOUT" source="log.stdout" defaultValue="STDOUT"/>
    <!--Log file name prefix-->
    <springProperty scope="context" name="LOG_PREFIX" source="spring.application.name"/>
    <!--Log internal properties-->
    <property name="LOG_CHARSET" value="UTF-8" />
    <property name="LOG_DIR" value="${LOG_HOME}/%d{yyyyMMdd}" /> <!--Generate log by day-->
    <property name="MAX_FILE_SIZE" value="1MB" /><!--Log file size-->
    <property name="MAX_HISTORY" value="7"/><!--days to keep logs-->
    <!--Console format configuration-->
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!--Format configuration in log file-->
    <property name="LOG_MSG" value="- | [%d{yyyyMMdd HH:mm:ss.SSS}] | [%level]|[${HOSTNAME}] | [%thread]|[%logger{40}] | [--> %msg] |%n "/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>${LOG_CHARSET}</charset>
        </encoder>
    </appender>
    <!--All logs-->
    <appender name="FILE_ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/all_${LOG_PREFIX}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_DIR}/all_${LOG_PREFIX}%i.log</FileNamePattern>
            <MaxHistory>${MAX_HISTORY}</MaxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>${LOG_MSG}</pattern>
        </layout>
    </appender>
    <!--Error log-->
    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
           <filter class="ch.qos.logback.classic.filter.LevelFilter">
               <level>ERROR</level>
               <OnMismatch>DENY</OnMismatch>
               <OnMatch>ACCEPT</OnMatch>
           </filter>
           <File>${LOG_HOME}/err_${LOG_PREFIX}.log</File>
           <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                   <FileNamePattern>${LOG_DIR}/err_${LOG_PREFIX}%i.log</FileNamePattern>
                   <MaxHistory>${MAX_HISTORY}</MaxHistory>
               <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                   <maxFileSize>${MAX_FILE_SIZE}</maxFileSize>
               </timeBasedFileNamingAndTriggeringPolicy>
           </rollingPolicy>
           <layout class="ch.qos.logback.classic.PatternLayout">
                   <Pattern>${LOG_MSG}</Pattern>
           </layout>
    </appender>

    <logger name="root" level="INFO"/>
    <!--Configure the log level according to different environments-->
    <springProfile name="default">
        <logger name="com.shuangxin.admin" level="DEBUG"/>
    </springProfile>

    <springProfile name="prod">
        <logger name="com.shuangxin.admin" level="ERROR"/>
    </springProfile>

    <root level="INFO">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="FILE_ALL" />
    </root>
</configuration>

 Effect display

2018-04-09 16:42:13.602  INFO 8188 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2018-04-09 16:42:13.608  INFO 8188 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2018-04-09 16:42:13.637  INFO 8188 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 29 ms
2018-04-09 16:42:13.727  INFO 8188 --- [nio-8080-exec-1] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

Log split effect by minutes



 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326013709&siteId=291194637