springboot配置日志输出
springboot默认使用的日志是logback,这就意味着我们不需要引入任何jar包
如果不做任何配置的话,默认的日志只是输出到控制台,这对于生产环境排查问题并不方便。
因此,我们需要对日志的输出做更进一步的配置
一、编写logback-spring.xml文件
这个文件呢,没啥好说的,就是将日志输出分成了两条流:控制台和文件
其中文件又对不同级别的日志info、warn、error分别输出到不同的文件
其中还定义了日志文件的最大大小和保留日期
<?xml version="1.0" encoding="UTF-8"?> <configuration> <property name="logDir" value="logs" /> <property name="maxHistory" value="30" /> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%npattern> encoder> appender> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logDir}\error.logfile> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERRORlevel> <onMatch>ACCEPTonMatch> <onMismatch>DENYonMismatch> filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logDir}\%d{yyyyMMdd}\error.%i.logfileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MBmaxFileSize> timeBasedFileNamingAndTriggeringPolicy> <maxHistory>${maxHistory}maxHistory> rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%npattern> <charset class="java.nio.charset.Charset">UTF-8charset> encoder> <append>falseappend> <prudent>falseprudent> appender> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logDir}\warn.logfile> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>WARNlevel> <onMatch>ACCEPTonMatch> <onMismatch>DENYonMismatch> filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logDir}\%d{yyyyMMdd}\warn.%i.logfileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MBmaxFileSize> timeBasedFileNamingAndTriggeringPolicy> <maxHistory>${maxHistory}maxHistory> rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%npattern> <charset class="java.nio.charset.Charset">UTF-8charset> encoder> <append>falseappend> <prudent>falseprudent> appender> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logDir}\info.logfile> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>INFOlevel> <onMatch>ACCEPTonMatch> <onMismatch>DENYonMismatch> filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${logDir}\%d{yyyyMMdd}\info.%i.logfileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MBmaxFileSize> timeBasedFileNamingAndTriggeringPolicy> <maxHistory>${maxHistory}maxHistory> rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger-%msg%npattern> <charset class="java.nio.charset.Charset">UTF-8charset> encoder> <append>falseappend> <prudent>falseprudent> appender> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="ERROR" /> <appender-ref ref="WARN" /> <appender-ref ref="INFO" /> root> configuration>
二、application.properties
#这个好像加不加都可以
logging.config=classpath:logback-spring.xml
大功告成,希望能帮到大家!
参考:
https://www.jianshu.com/p/2e6f7f9db93b