log4j+slf4j+spring(web项目)

本文详细介绍了Java中日志框架log4j的配置与使用方法,包括项目结构搭建、依赖引入、log4j.properties文件配置及运行结果分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目用的是maven构建所以直接在pom中加入依赖

<!-- log4j -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.2</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.16</version>
		</dependency>

不用maven也可以直接下载对应的jar包


一、项目结构





log4j.properties


log4j.rootLogger=DEBUG,CONSOLE,FILE

log4j.addivity.org.apache=true


# Console Appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.encoding=UTF-8
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=-%-4r [%l] %-5p %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n


# File Appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.encoding=UTF-8
log4j.appender.FILE.File=file.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d -%-4r [%t] %-5p %c %x - %m%n
# Use this layout for LogFactor 5 analysis

java的demo
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Demo7 {
	private static Logger logger = LoggerFactory.getLogger(Demo7.class);	
	
	@Test
	public void test1(){
		String error = "error";
		String warn = "warn";
		logger.debug("this is a debug message");
		logger.info("this is a info message");
		logger.warn("this is a {} message",warn);
		logger.error("this is a {} message",error);
		
		
	}
}

web.xml 文件的部分


	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>myappfuse.root</param-value>
	</context-param>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>classpath*:log4j.properties</param-value>
	</context-param>
	<listener>
		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
	</listener>
	<!--这里配置了一个listener,也可以配置servlet: -->
	<!-- <servlet> <servlet-name>log4j</servlet-name> <servlet-class> org.springframework.web.util.Log4jConfigServlet 
		</servlet-class> <load-on-startup>1</load-on-startup> </servlet> -->



运行后的结果。 配置文件中有输出的文件,

<span style="font-size:14px;">log4j.appender.FILE.File=file.log</span>

所以会在跟根目录下生成一个fire.log文件






参考文章 :

http://www.blogjava.net/daiyongzhi/archive/2014/04/13/412364.html  java日志组件介绍(common-logging,log4j,slf4j,logback )

### 如何在 Spring Boot 中集成 Log4JSlf4J 进行日志管理 #### 1. 修改 `pom.xml` 文件以移除默认的日志依赖并添加 Log4j2 依赖 为了确保使用的是 Log4j 而不是默认的 Logback,需要修改 Maven 的 `pom.xml` 文件来排除默认的日志实现,并加入对于 Log4j2 及其桥接器的支持。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除默认的日志库 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加 Log4j2 作为新的日志实现 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` #### 2. 创建或更新 Log4j2 配置文件 将名为 `log4j2.xml` 或者更推荐使用的 `log4j2-spring.xml` 放置于项目的 resources 目录下。即使不手动指定路径,Spring Boot 应用程序也能够自动识别这些位置下的配置文件[^3]。 #### 3. 启用全局异步日志记录提升性能 通过创建一个名为 `log4j2.component.properties` 的属性文件,在其中设置如下参数可以启用全局异步模式: ```properties Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector ``` 这一步骤有助于显著改善应用程序写入日志时的表现效率[^4]。 #### 4. 使用 SLF4J API 编码 尽管底层实现了 Log4j2 来处理实际的日志输出工作,但在编码过程中应当继续沿用 SLF4J API 定义接口来进行日志操作。这样做不仅保持了灵活性,而且使得未来更换其他具体日志框架变得更加容易。 ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ExampleService { private static final Logger logger = LoggerFactory.getLogger(ExampleService.class); public void performAction() { logger.info("Executing action..."); try { // Some business logic here... } catch (Exception e) { logger.error("An error occurred while executing the action", e); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值