强烈推荐一个大神的人工智能的教程: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、多分析系统的日志,对于优化系统非常有帮助。