Spring Boot使用logback
2017-12-18 21:17
246 查看
默认情况下Spring boot使用Logback作为日志框架。当我们加入stater-web时:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
默认的已经添加了logback依赖了。Spring Boot已为当前使用日志框架的控制台输出以及文件的输出做好了配置。如果我们想修改,可以在Spring Boot的配置文件application.properties中配置,例如:
logging.file=D://mylog/log.log
但是,有时我们想实现一些更细粒度的控制,例如只记录最近30天的日志,对于不同错误级别,记录到不同的日志文件中。
1、首先在resources目录下新建logback-boot.xml 名字不可以是 logback.xml ,logback-xxx.xml随意。
2、在logback-boot.xml中配置输入目的、格式等。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="300 seconds">
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<!--↑使用该行,则控制台中有重复的日志,默认格式的日志和此处配置的日志-->
<!--<logger name="org.springframework.web" level="INFO"/>-->
<contextName>bioinfo</contextName>
<property name="LOG_HOME" value="/root/apache-tomcat-7.0.68/logs"/>
<!--正常日志的文件名-->
<property name="FILE" value="bioinfo.log_info"/>
<!--错误日志的文件名-->
<property name="FILE2" value="bioinfo.log_error"/>
<!-- 输出到文件 Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件生成/切分策略 开始-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<!–日志文件达到5MB时生成新文件–>-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--文件生成/切分策略 结束-->
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<!--logback中parrern布局的左右括号()有特殊含义,如需输出应该转义\(\)-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!--仅输出INFO以上级别日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- 输出错误日志到另一文件 Simple file output -->
<appender name="FILE2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件生成/切分策略 开始-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${FILE2}.%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<!–日志文件达到5MB时生成新文件–>-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--文件生成/切分策略 结束-->
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!--仅输出ERROR级别日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- 输出到控制台Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- Only log level WARN and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Enable FILE and STDOUT appenders for all log messages. By default, only log at level INFO and above. -->
<root level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="FILE2"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
3、在Spring boot的配置文件中配置自定义的日志配置文件。
#在application.properties文件中引入日志配置文件
#===================================== log =============================
logging.config=classpath:logback-boot.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
默认的已经添加了logback依赖了。Spring Boot已为当前使用日志框架的控制台输出以及文件的输出做好了配置。如果我们想修改,可以在Spring Boot的配置文件application.properties中配置,例如:
logging.file=D://mylog/log.log
但是,有时我们想实现一些更细粒度的控制,例如只记录最近30天的日志,对于不同错误级别,记录到不同的日志文件中。
1、首先在resources目录下新建logback-boot.xml 名字不可以是 logback.xml ,logback-xxx.xml随意。
2、在logback-boot.xml中配置输入目的、格式等。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="300 seconds">
<!--<include resource="org/springframework/boot/logging/logback/base.xml"/>-->
<!--↑使用该行,则控制台中有重复的日志,默认格式的日志和此处配置的日志-->
<!--<logger name="org.springframework.web" level="INFO"/>-->
<contextName>bioinfo</contextName>
<property name="LOG_HOME" value="/root/apache-tomcat-7.0.68/logs"/>
<!--正常日志的文件名-->
<property name="FILE" value="bioinfo.log_info"/>
<!--错误日志的文件名-->
<property name="FILE2" value="bioinfo.log_error"/>
<!-- 输出到文件 Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件生成/切分策略 开始-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${FILE}.%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<!–日志文件达到5MB时生成新文件–>-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--文件生成/切分策略 结束-->
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<!--logback中parrern布局的左右括号()有特殊含义,如需输出应该转义\(\)-->
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!--仅输出INFO以上级别日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- 输出错误日志到另一文件 Simple file output -->
<appender name="FILE2" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--文件生成/切分策略 开始-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${FILE2}.%d{yyyy-MM-dd}.log</fileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<!–日志文件达到5MB时生成新文件–>-->
<!--<maxFileSize>10MB</maxFileSize>-->
<!--</triggeringPolicy>-->
<!--文件生成/切分策略 结束-->
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!--仅输出ERROR级别日志-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- 输出到控制台Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- Only log level WARN and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<!-- Enable FILE and STDOUT appenders for all log messages. By default, only log at level INFO and above. -->
<root level="INFO">
<appender-ref ref="FILE"/>
<appender-ref ref="FILE2"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>
3、在Spring boot的配置文件中配置自定义的日志配置文件。
#在application.properties文件中引入日志配置文件
#===================================== log =============================
logging.config=classpath:logback-boot.xml
相关文章推荐
- SpringBoot 使用logback日志分级别生成文件
- SpringBoot学习——使用logback配置日志
- spring boot使用logback实现多环境日志配置详解
- springboot中使用logback
- Spring boot——logback 基础使用篇(一)
- 详解Spring Boot配置使用Logback进行日志记录的实战
- springBoot中Logback日志的使用
- 为什么Spring Boot推荐使用logback-spring.xml来替代logback.xml来配置logback日志的问题分析
- springboot中使用logback
- spring-boot使用logback的坑2
- spring boot 使用logback日志系统的详细说明
- SpringBoot学习:使用logback进行日志记录
- Spring Boot使用Logback
- springboot中使用logback
- Spring boot——logback 基础使用篇(一)
- springboot中使用logback
- springboot中使用logback
- spring-boot项目中使用logback进行日志记录
- springboot使用logback多环境配置
- Spring Boot 使用 logback、logstash、ELK 记录日志文件的方法