springboot系列二之 日志

spring boot 日志

更多干货

  • spring-boot系列一 之restfull api与多环境配置
  • springboot系列二之 日志
  • SpringBoot系列三之 MVC 模版引擎
  • SpringBoot 2.0.0.M7 系列四 异常处理
  • springboot 2.0.0.M7之 注解 与 配置
  • springboot 2.0.0.M7 配置mvc
  • springboot 2.0.0.M7 之 Servlet Listener Filter
  • springboot 2.0.0.M7 之 跨域
  • springboot 2.0.0.M7 之使用mysql
  • spring boot 2.0.0.M7 之 数据库-事务处理
  • springboot 2.0.0.M7 之 h2 嵌入式数据库的使用
  • springboot 2.0.0.M7 之 数据库-redis
  • Spring Boot 2.0.0.M7 中使用Swagger2构建RESTful API文档
  • Spring Boot 2.0.0.M7 springBoot-mongodb使用
  • Spring Boot 2.0.0.M7 使用 Caching-EhCache
  • Spring Boot spring boot 使用 Caching-Redis
  • Spring Boot 2.0.0.M7 使用异步消息服务-AMQP(RabbitMQ)
  • Spring Boot 2.0.0.M7 调用REST服务-如何使用代理
  • Spring Boot 2.0.0.M7 发送邮件-使用模板邮件并实现多账号轮询发送
  • Spring Boot 2.0.0.M7 使用Spring Session实现集群-redis
  • Spring Boot 2.0.0.M7 如何进行远程调试
  • Spring Boot 生产准备-基于HTTP的监控
  • Spring Boot 集成 Druid
  • springboot思维导图

  • 支持日志框架:Java Util Logging, Log4J2 and Logback,默认是使用logback
  • 配置方式:默认配置文件配置和引用外部配置文件配置

一、Logback

默认配置文件配置

  • 不建议使用:不够灵活,对log4j2等不够友好
# 日志文件名,比如:eva.log,或者是 /var/log/eva.log
logging.file=eva.log 
# 日志级别配置,比如: logging.level.org.springframework=DEBUG
logging.level.*=info
logging.level.org.springframework=DEBUG

引用外部配置文件

  • spring boot默认会加载classpath:logback-spring.xml或者classpath:logback-spring.groovy
  • 使用自定义配置文件,配置方式为
logging.config=classpath:logback-eva.xml
注意:不要使用logback这个来命名,否则spring boot将不能完全实例化

使用基于spring boot的配置

xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG"/>
configuration>

logback-eva.xml

xml version="1.0" encoding="UTF-8"?>
<configuration>

	
	<property name="PATTERN" value="%-12(%d{yyyy-MM-dd HH:mm:ss.SSS}) |-%-5level [%thread] %c [%L] -| %msg%n" />
	
	<property name="TEST_FILE_PATH" value="d:/opt/eva/logs" />
	
	<property name="PRO_FILE_PATH" value="/opt/eva/logs" />

	
	<springProfile name="dev">
		<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
			<encoder>
				<pattern>${PATTERN}pattern>
			encoder>
		appender>
		
		<logger name="com.eva.learn" level="debug"/>

		<root level="info">
			<appender-ref ref="CONSOLE" />
		root>
	springProfile>

	
	<springProfile name="test">
		
		<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
			
			<file>${TEST_FILE_PATH}file>
			<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
				
				<fileNamePattern>${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.logfileNamePattern>
				
				<MaxHistory>100MaxHistory>
			rollingPolicy>
			
			<layout class="ch.qos.logback.classic.PatternLayout">
				<pattern>${PATTERN}pattern>
			layout>
		appender>
		
		<root level="info">
			<appender-ref ref="TEST-FILE" />
		root>
	springProfile>

	
	<springProfile name="prod">
		<appender name="PROD_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
			<file>${PRO_FILE_PATH}file>
			<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
				<fileNamePattern>${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.logfileNamePattern>
				<MaxHistory>100MaxHistory>
			rollingPolicy>
			<layout class="ch.qos.logback.classic.PatternLayout">
				<pattern>${PATTERN}pattern>
			layout>
		appender>
		
		<root level="warn">
			<appender-ref ref="PROD_FILE" />
		root>
	springProfile>
configuration>

二、Log4j

去除logback的依赖包,添加log4j2的依赖包

		<exclusions>
			<exclusion>
				<groupId>org.springframework.bootgroupId>
				<artifactId>spring-boot-starter-loggingartifactId>
			exclusion>
		exclusions>

		
		<dependency>
			<groupId>org.springframework.bootgroupId>
			<artifactId>spring-boot-starter-log4j2artifactId>
		dependency>
  • 在classpath添加log4j2.xml或者log4j2-spring.xml(spring boot 默认加载)

应用自定义配置

# 应用自定义配置
logging.config=classpath:log4j2-dev.xml

log4j2-dev.xml

xml version="1.0" encoding="utf-8"?>
<configuration>
	<properties>
		
		<property name="PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} |-%-5level [%thread] %c [%L] -| %msg%nproperty>
	properties>

	<appenders>
		<Console name="CONSOLE" target="system_out">
			<PatternLayout pattern="${PATTERN}" />
		Console>
	appenders>
	
	<loggers>
		<logger name="com.roncoo.education" level="debug" />
		<root level="info">
			<appenderref ref="CONSOLE" />
		root>
	loggers>

configuration>

比较 Logback 与 Log4J2

  • 性能比较:Log4J2 和 Logback都优于 log4j(不推荐使用)
  • 配置方式:Logback最简洁,spring boot默认,推荐使用

你可能感兴趣的:(【springboot】)