内容简介:SpringBoot 日志配置 默认采用LogBack作为日志输出!具体输出的格式详解如下:
springboot 默认日志配置
SpringBoot 日志配置 默认采用LogBack作为日志输出!
日志格式化
具体输出的格式详解如下:
2019-01-10 17:30:08.685 :日期精确到时间毫秒级别
info是日志级别 : 可以设置为其他的级别如debug,error等
9184 :进程id
--- : 分割符
main: 表示主线程
com.xxxxx: 通常为源码类
“:” 后即为详细的日志信息
控制台输出级别
在application.properties文件中配置
如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在 application.properties 中设置 spring.output.ansi.enabled 参数来支持。
- NEVER:禁用ANSI-colored输出(默认项)
- DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
- ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
#多彩输出 spring.output.ansi.enabled=detect #日志级别 logging.level.root=info #所有包下面都以debug级别输出 logging.level.*=info
默认输出格式
可以通过 logging.pattern.console = 进行配置
文件输出
springboot默认会将日志输出到控制台,线上查看日志时会很不方便,一般我们都是输出到文件。
需要在application.properties配置
#日志输出路径问价 优先输出 logging.file logging.file=C:/Users/tizzy/Desktop/img/my.log #设置目录,会在该目录下创建spring.log文件,并写入日志内容, logging.path=C:/Users/tizzy/Desktop/img/ #日志大小 默认10MB会截断,重新输出到下一个文件中,默认级别为:ERROR、WARN、INFO logging.file.max-size=10MB
logging.file 和 logging.path 同时设置时候会优先使用logging.file 作为日志输出。
自定义日志配置
日志服务在ApplicationContext 创建之前就被初始化了,并不是采用Spring的配置文件进行控制。
那我们来如何进行自定义配置日志呢。
springboot为我们提供了一个规则,按照规则组织配置文件名,就可以被正确加载:
- Logback:
logback-spring.xml,logback-spring.groovy,logback.xml,logback.groovy - Log4j:
log4j-spring.properties,log4j-spring.xml,log4j.properties,log4j.xml - Log4j2:
log4j2-spring.xml,log4j2.xml - JDK (Java Util Logging):
logging.properties
LogBack xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制台打印日志的相关配置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志格式 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%level] - %m%n</pattern>
</encoder>
<!-- 日志级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>WARN</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 文件保存日志的相关配置 -->
<appender name="ERROR-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 保存日志文件的路径 -->
<file>/logs/error.log</file>
<!-- 日志格式 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%class:%line] - %m%n</pattern>
</encoder>
<!-- 日志级别过滤器 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 最大保存时间:30天-->
<maxHistory>30</maxHistory>
</rollingPolicy>
</appender>
<!-- 基于dubug处理日志:具体控制台或者文件对日志级别的处理还要看所在appender配置的filter,如果没有配置filter,则使用root配置 -->
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="ERROR-OUT" />
</root>
</configuration>
Log4j
引如 Log4j 日志时候 需要 排除logBack日志
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
# 日志级别,日志追加程序列表... log4j.rootLogger=DEBUG,ServerDailyRollingFile,stdout #文件保存日志 log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender #文件保存日志日期格式 log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd_HH #文件保存日志文件路径 log4j.appender.ServerDailyRollingFile.File=/mnt/lunqi/demo/log4j.log #文件保存日志布局程序 log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout #文件保存日志布局格式 log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n #文件保存日志需要向后追加(false是测试的时候日志文件就清空,true的话就是在之前基础上往后写) log4j.appender.ServerDailyRollingFile.Append=false #控制台日志 log4j.appender.stdout=org.apache.log4j.ConsoleAppender #控制台日志布局程序 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout #控制台日志布局格式 log4j.appender.stdout.layout.ConversionPattern=%d yyyy-MM-dd HH:mm:ss %p [%c] %m%n
Log4j2
同样排除LogBack干扰,并且引入 Log4j2 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
</Console>
<File name="log" fileName="log/test.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
</File>
<RollingFile name="RollingFile" fileName="logs/spring.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="50MB" />
</RollingFile>
</appenders>
<loggers>
<root level="trace">
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
</loggers>
</configuration>
更多查看官方文档
以上所述就是小编给大家介绍的《springboot 默认日志配置》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- [Framework]设置默认WiFi配置
- SpringBoot 实战 (七) | 默认日志配置
- 「快学SpringBoot」配置文件的加载顺序和配置项默认值设置
- Struts2中配置默认Action
- RabbitMQ默认集群模式搭建配置实现步骤
- Docker-解决空间不足的问题以及修改默认配置
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Paradigms of Artificial Intelligence Programming
Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!