您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: