欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot2配置日志

程序员文章站 2022-04-27 18:44:13
...

Spring Boot内部采用的是Commons Logging进行日志记录,但在底层为Java Util Logging、Log4J2、Logback等日志框架提供了默认配置 。Java 虽然有很多可用的日志框架,但SpringBoot默认使用的Logback的框架。

springboot默认的日志级别是INFO,,配置如下

logging:
  level: debug

注意:这样配置启动会报如下错误

org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, org.springframework.boot.logging.LogLevel>

因为logging.level的值需要Map<String,String>类型,正确的配置如下:

logging:
  level: 
    root: debug

假设你要到某个目录下设置日志级别,比如目录为com.demo 则配置如下

logging:
  level: 
    com.demo: debug

除了使用配置文件配置,还可以使用logback.xml的配置,具体如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1000 seconds">
	<property name="log.dir" value="./logs/" />
	<property name="log.filename" value="springcloud" />

	<!-- Output to Console -->
	<appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%-5level][%logger:%line]--%mdc{client} %msg%n</pattern>
			<charset>UTF-8</charset>
		</encoder>
	</appender>

	<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
	<appender name="FILE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.dir}${log.filename}.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${log.dir}${log.filename}.%d{yyyy-MM-dd}.%i.log
			</fileNamePattern>
			<maxHistory>10</maxHistory>
			<cleanHistoryOnStart>true</cleanHistoryOnStart>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>500MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<Pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%-5level][%logger:%line]--%mdc{client} %msg%n</Pattern>
		</encoder>
	</appender>

	<!-- 文件输出日志 (文件大小策略进行文件输出,超过指定大小对文件备份) -->
	<appender name="ERRORFILE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<file>${log.dir}${log.filename}-error.log</file>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${log.dir}${log.filename}-error.%d{yyyy-MM-dd}.%i.log
			</fileNamePattern>
			<maxHistory>10</maxHistory>
			<cleanHistoryOnStart>true</cleanHistoryOnStart>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>500MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
		</rollingPolicy>
		<encoder>
			<Pattern>[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%-5level][%logger:%line]--%mdc{client} %msg%n</Pattern>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>


	<!-- 打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和  OFF 默认是DEBUG -->
	<root level="debug">
		<appender-ref ref="Console" />
		<appender-ref ref="FILE" />
		<appender-ref ref="ERRORFILE" />
		<!--<appender-ref ref="LOGSTASH" />-->
	</root>
	<logger name="com.channelsoft" level="DEBUG" />
	<logger name="org.springframework" level="info" />
	<logger name="org.apache.tomcat" level="info" />
	<logger name="org.apache.shiro" level="trace" />
	<logger name="sun" level="info" />
	<logger name="javax" level="info" />
	<!--<logger name="org.springframework.web.servlet.DispatcherServlet" level="DEBUG" />-->
</configuration>

以上的配置项,在此就不赘述了,基本上都是通用配置。
 

相关标签: springboot log