SpringBoot中使用Log4j2配置实例

Spring Boot 默认使用 Logback,但相比较而言,Log4j2 在性能上面会更好。
添加依赖:
除了添加log4j2的依赖,还要排除Springboot默认依赖的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-log4j2</artifactId>
</dependency>

然后在src/main/resources中添加log4j2.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 共有8个级别,按照从低到高为:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF -->
<!-- status指定log4j本身的打印日志的级别 -->
<Configuration status="WARN">

	<Properties>
		<Property name="base.package">com.example.demo</Property>
		<Property name="log.level">${sys:log4j.log.level:-DEBUG}</Property>
		<Property name="logfile.path">${sys:log4j.logfile.path:-/data/logs/access}/@artifactId@</Property>
		<Property name="logfile.arch.path">${sys:log4j.logfile.path:-/data/logs/access}/@artifactId@/${date:yyyy-MM}</Property>
		<Property name="logfile.arch.suffix">%d{yyyy-MM-dd}-%i.log.gz</Property>
		<Property name="logOut.pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%5p} ${sys:PID} --- [%15.15t] %-40.40c{1.} : %m%n</Property>
		<Property name="logfile.pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] &lt;%c&gt; : %m%n</Property>
		<Property name="timestamp.pattern">%d{yyyy-MM-dd HH:mm:ss.SSS}{GMT+0}</Property>
	</Properties>

	<Appenders>
		<!-- 输出到控制台 -->
		<Console name="STDOUT" target="SYSTEM_OUT">
			<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT" />
			<PatternLayout pattern="${logOut.pattern}"/>
		</Console>
		<Console name="STDERR" target="SYSTEM_ERR">
			<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="${logOut.pattern}"/>
		</Console>
		
		<!-- 输出到日志文件 -->
		<RollingRandomAccessFile name="SERVICE_LOG_FILE" fileName="${logfile.path}/service.log"
								 filePattern="${logfile.arch.path}/service-${logfile.arch.suffix}">
			<PatternLayout pattern="${logfile.pattern}"/>
			<Policies>
				<!-- 基于时间的滚动策略(interval属性). The default value is 1. -->
				<TimeBasedTriggeringPolicy />
				<!-- 基于文件大小的滚动策略(size属性):SizeBasedTriggeringPolicy -->
			</Policies>
			<!-- 日志删除策略 -->
			<!-- 用来指定同一个文件夹下最多有几个日志文件时开始删除最旧的,创建新的(通过max属性). The default value is 7. -->
			<DefaultRolloverStrategy>
				<!-- maxDepth:要访问的目录的最大级别数 -->
				<Delete basePath="${logfile.path}" maxDepth="2">
					<!-- 按通配符匹配文件 -->
					<IfFileName glob="*/service-*.log.gz" />
					<!-- 删除180天之前的 -->
					<IfLastModified age="180d" />
				</Delete>
			</DefaultRolloverStrategy>
		</RollingRandomAccessFile>

	</Appenders>

	<Loggers>
		<!-- Root Logger -->
		<Root level="INFO">
			<AppenderRef ref="STDOUT"/>
			<AppenderRef ref="STDERR"/>
			<AppenderRef ref="SERVICE_LOG_FILE" />
		</Root>

		<!-- additivity="false"只在自定义的Appender中进行输出 -->
		<!-- Base Logger -->
		<Logger name="${base.package}" level="${log.level}"></Logger>
	</Loggers>
	
</Configuration>

具体使用就不介绍,通常是通过lombok@Slf4j

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Spring Boot 使用 log4j2,需要以下几个步骤: 1. 在项目的 pom.xml 文件添加 log4j2 的依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` 2. 在项目的 resources 目录下创建 log4j2.xml 文件,并配置 log4j2 的相关参数,如: ``` <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> <Logger name="org.springframework.boot" level="info"/> </Loggers> </Configuration> ``` 3. 在代码使用 log4j2 记录日志,例如: ``` private static final Logger logger = LogManager.getLogger(YourClassName.class); logger.info("This is a log4j2 log message."); ``` 在项目启动后,log4j2 就会根据配置文件的参数,将日志信息记录到控制台或其他地方。 ### 回答2: Spring Boot是一个用于简化Spring应用程序开发的框架,其也包含了对日志的支持。在Spring Boot应用程序,可以使用log4j2作为日志框架。 使用log4j2需要进行以下步骤: 1. 添加log4j2的依赖:在`pom.xml`文件添加log4j2的依赖。例如: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` 2. 配置log4j2:在`src/main/resources`目录下创建一个名为`log4j2.xml`的配置文件。在配置文件可以定义日志输出的格式、目标等配置信息。例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="info"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` 3. 在Java代码使用log4j2:在需要使用日志的类导入`org.apache.logging.log4j.LogManager`和`org.apache.logging.log4j.Logger`,然后通过`LogManager.getLogger()`方法获取Logger实例,最后调用Logger的方法记录日志。例如: ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyService { private static final Logger logger = LogManager.getLogger(MyService.class); public void doSomething() { logger.info("Doing something..."); } } ``` 以上就是在Spring Boot使用log4j2的基本步骤。通过配置log4j2.xml文件,可以灵活地控制日志的输出格式和目标,并且可以使用Logger记录各种级别的日志。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值