强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan
【前言】
项目中每天会打印很多日志,有时候进行排错打开一个大的日志文件(我们有一个系统的线上日志文件大小已经超过20G)是一件很可怕的事情;对日志进行按天的切分是一件非常有必要的事情。
【日志按天切分】
一、在application.properties中增加log相关配置
#****************************Log****************************
zhanghan.system.log.path=/data/logs/zhanghan-log
logging.config=${spring.config.location}/logback.xml
二、核心文件logback.xml
<configuration>
<contextName>zhanghan</contextName>
<property resource="file:${spring.config.location}/application.properties"/>
<appender name="SYSTEM_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${zhanghan.system.log.path}/logs.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${zhanghan.system.log.path}/%d{yyyy-MM-dd}/logs-%i.log</fileNamePattern>
<maxFileSize>1GB</maxFileSize>
<maxHistory>60</maxHistory>
<totalSizeCap>100GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="SYSTEM_STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="SYSTEM_STDOUT"/>
<appender-ref ref="SYSTEM_FILE"/>
</root>
</configuration>
三、利用命令启动时指定application.properties
nohup java $DEBUG -jar -Xmx256m -Dfile.encoding=UTF-8 -Dspring.config.location=/data/work/zhanghan/ zhanghan.jar >>zhanghan.log 2>&1 &
四、SpringBoot中分析logback依赖关系
四、效果:
【总结】
1、日志按天切分后查找起来容易很多;
2、多分析系统的日志,对于优化系统非常有帮助。