Spring-Boot (三) 默认日志logback配置

来源:互联网 发布:sqlserver 索引维护 编辑:程序博客网 时间:2024/05/22 15:49

Spring-Boot官方开发指导文档


SpringBoot默认采用了logback日志系统,也支持Log4j2、JDK (Java Util Logging)、SLF4J、Commons Logging等。下面说一下logback日志系统在SpringBoot中的配置。


如果日志需求简单,可以直接在application.properties中配置logback日志属性,否则可以自定义logback日志文件位置,然后根据自己需要配置logback内容。下面是一部分常用配置属性:


logging.file=xxxx.log  //该属性指定日志文件名称

logging.path=/xxx/xxx   //日志文件存储目录,当前目录 . 。

logging.file.max-size=2MB //单个日志文件大小,

logging.file.max-history=30 //日志文件保存30天的

logging.level.root=INFO //root日志打印级别

logging.level.xxx.xxx.xx=INFO //指定类或者包打印日志级别


项目中使用时,private Logger logger = LoggerFactory.getLogger(XXX.class);即可,该Logger为SLF4J的导入类。


日志系统在实际项目中一般需要个性化配置,所以可以通过下面的属性指定配置文件位置

logging.config=xxxxx

//该属性配置自定义日志文件位置,如果位于classpath根目录下,则直接填写文件名称即可。本例中使用logback, 位置位于src/main/resources/log下,配置应为:

logging.config=classpath:log/logback-spring.xml

关于logback配置文件名称,springboot官网推荐尽可能不要叫logback.xml,因为该文件在启动时就会加载,加载非常早,会导致配置文件中的springboot标签不识别。所以推荐命名xxxxx-spring.xml形式。


在springboot中的logback除了本身的标签外,还增加了<springProfile> 、 <springProperty>标签。

springProfile标签用于区分各个环境下配置文件,在application.properties中配置了spring.profiles.active=xxx后,该标签会加载指定的日志配置文件。

如:logback-spring.xml

<?xml version="1.0" encoding="UTF-8"?><configuration debug="true" scan="true" scanPeriod="60 seconds"><!-- scan日志刷新 scanPeriod不带单位时,单位为毫秒 --><!-- 控制台输出 --><appender name="Console" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern></encoder></appender><!-- springProfile是springboot标签,可以配置运行时激活的配置 ,另外还有springProperty可以读取properties内的属性值应用到logback配置文件中--><springProfile name="dev"><include resource="log/logback-spring-dev.xml" /></springProfile><springProfile name="test"><include resource="log/logback-spring-test.xml" /></springProfile><springProfile name="pro"><include resource="log/logback-spring-pro.xml" /></springProfile></configuration>

其中logback-spring-dev.xml、logback-spring-test.xml、logback-spring-pro.xml三个配置文件分别是开发、测试、生产环境下的日志配置信息。

logback-spring-dev.xml如下:其他不再列举

<?xml version="1.0" encoding="UTF-8"?><included><!-- 属性定义使用以及ref参照使用,必须有顺序,使用前必须已定义--><!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 --><property name="LOG_HOME" value="D:/logs" /><!-- 按照每天生成日志文件 --><appender name="File"class="ch.qos.logback.core.rolling.RollingFileAppender"><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!--日志文件输出的文件名 --><FileNamePattern>${LOG_HOME}/springboot.log.%d{yyyy-MM-dd}.log</FileNamePattern><!--日志文件保留天数 --><MaxHistory>30</MaxHistory></rollingPolicy><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小 --><triggeringPolicyclass="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><MaxFileSize>2MB</MaxFileSize></triggeringPolicy></appender><!-- 可以指定包或者类 --><logger name="com.tom" level="INFO"><appender-ref ref="File"></appender-ref></logger><!-- 日志输出级别 --><root level="INFO"><appender-ref ref="Console" /></root></included>


springProperty标签用于读取spring环境中property配置的属性值,springProperty有name属性,与logback中标签property作用类似,可以在配置文件的下文中通过${name}读取值。logback中配置定义有顺序,取值或者引用必须先声明后引用。

官文例子:

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"defaultValue="localhost"/><appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender"><remoteHost>${fluentHost}</remoteHost>....</appender>





阅读全文
0 0
原创粉丝点击