设置spring-boot的logging
2017-04-21 00:00
357 查看
spring-boot默认使用logback来记录logger,spring-boot的包里面
对于输出到文件,如果设置了logging.file就使用该值作为文件名称,如果设置了logging.path就使用logging.path/spring.log作为文件名称,如果都没有设置就放入临时文件中。
那么问题来了,如果要写入文件的话,一个文件不会被写得很大吗?
这个时候就可以看
我们来看看
是的,默认的配置里面有个
有人可能想问,这些都是默认的配置,如果我不想使用默认的配置,我想按照天来切割日志,应该如何设置呢?
可以在resources目录下面创建一个
上面
所以说如果要自定义日志的格式, 就可以通过自己编写
最后在配置文件
如果需要在
然后在
配置进行替代默认值
PS: 遇到一个坑, 就是想关掉某个包下面的日志,不能直接
因为OFF是yaml的关键字,上面那么写没有任何作用
所以如果想关掉某个包下面的日志的正确方法是 OFF上面加上单引号
最后如果觉得所讲的东西能够帮助到你,并且希望进行更详细的深入的学习,欢迎加群632109190进行讨论和学习。
org.springframework.boot.logging.logback路径下面有一些配置文件,默认的情况下会使用
base.xml,它把日志输出到控制台和文件之中。它的内容是:
<included> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </included>
对于输出到文件,如果设置了logging.file就使用该值作为文件名称,如果设置了logging.path就使用logging.path/spring.log作为文件名称,如果都没有设置就放入临时文件中。
那么问题来了,如果要写入文件的话,一个文件不会被写得很大吗?
这个时候就可以看
base.xml里面
include了
org/springframework/boot/logging/logback/file-appender.xml
我们来看看
org/springframework/boot/logging/logback/file-appender.xml里面是什么东西
<included> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>${LOG_FILE}.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </included>
是的,默认的配置里面有个
SizeBasedTriggeringPolicy来表示文件的大小,每个文件到了10MB的时候就会重新开启一个文件,并且把之前的名称命名成
${LOG_FILE}.%i,这样就解决了日志文件过大的问题。
有人可能想问,这些都是默认的配置,如果我不想使用默认的配置,我想按照天来切割日志,应该如何设置呢?
可以在resources目录下面创建一个
logback-spring.xml的文件,并且给出自己想要的配置,这里给一个简单的配置是的日志文件可以按天为单位来切割日志文件
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> <appender name="TIME_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i</fileNamePattern> <maxHistory>365</maxHistory> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="TIME_FILE" /> </root> </configuration>
上面
%d{yyyy-MM-dd}表示命名的文件名字以原始的名字后面加上日期作为后缀,
<maxFileSize>100MB</maxFileSize>表示每个文件大小为100MB。这样日志文件就会以日期来进行切割并且进行保存了。
所以说如果要自定义日志的格式, 就可以通过自己编写
logback-spring.xml这个文件来自己定义了。
最后在配置文件
appication.yaml设置好文件名称和日志级别就可以了
spring: application: name: spring-boot-logging logging: file: ./logs/spring-boot-logging.log level: com.dragon.study.spring.boot: DEBUG
如果需要在
logback-spring.xml自定义一些配置文件,可以使用
<springProperty scope="context" name="SYSLOG_HOST" source="logging.syslog.host" defaultValue="syslog.hostname" /> <springProperty scope="context" name="SYSLOG_FACILITY" source="logging.syslog.facility" defaultValue="LOCAL7"/> <appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> <syslogHost>${SYSLOG_HOST}</syslogHost> <facility>${SYSLOG_FACILITY}</facility> </appender>
然后在
appication.yaml的配置文件中加入
logging.syslog.facility: syslog.change.hostname logging.syslog.facility: LOCAL1
配置进行替代默认值
PS: 遇到一个坑, 就是想关掉某个包下面的日志,不能直接
logging: level: com.dragon.study.spring.boot: OFF
因为OFF是yaml的关键字,上面那么写没有任何作用
所以如果想关掉某个包下面的日志的正确方法是 OFF上面加上单引号
logging: file: ./logs/spring-boot-logging.log level: com.dragon.study.spring.boot: 'OFF'
最后如果觉得所讲的东西能够帮助到你,并且希望进行更详细的深入的学习,欢迎加群632109190进行讨论和学习。
相关文章推荐
- Spring Boot Logging Level设置为off时Bug
- 设置spring-boot的logging
- spring boot logging 日志设置
- spring-boot 利用 actuator 动态设置 logging 的日志级别
- springBoot上传文件大小设置
- springboot 连接池wait_timeout超时设置
- (28)SpringBoot启动时的Banner设置【从零开始学Spring Boot】
- 一、Spring-boot设置restful
- springboot 构建微服务设置远程调试
- Spring boot @Test的时候需要设置 环境变量:spring.profiles.active = dev
- Spring boot VO字段设置后台传入前台日期格式
- SpringBoot启动时的Banner设置
- spring-boot-starter-logging logback常用配置之<appender>标签详解
- Spring Boot 设置静态资源访问
- springboot系列之-logging
- 28. SpringBoot启动时的Banner设置【从零开始学Spring Boot】
- [置顶] 基于springboot+mybatis的微信公众号开发第二篇-验证与消息推送的基本设置
- Spring boot 设置500 404错误的java方法
- spring boot tomcat 设置
- spring boot环境下使用quartz设置定时任务