log4j2学习

log4j2各种场景对应的jar

jar管理用的是maven,在项目的pom.xml文件添加下面的代码

Log4j2 核心jar

<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-api</artifactId>
	<version>2.2</version>
</dependency>
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-core</artifactId>
	<version>2.2</version>
</dependency>
<!-- Web项目需添加 -->
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-web</artifactId>
	<version>2.9.1</version>
</dependency>

SLF4J Bridge和 slf4j核心包

不能同时使用 log4j-to-slf4j jar

<!--用于与slf4j保持桥接 -->
<dependency>
	<groupId>org.apache.logging.log4j</groupId>
	<artifactId>log4j-slf4j-impl</artifactId>
	<version>2.9.1</version>
</dependency>
<!-- slf4j核心包 -->
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.25</version>
</dependency>

Web Servlet Support jar

web.xml的servlet的版本要是3.0

<dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
      <version>2.11.1</version>
</dependency>

log4j2 配置

log4j2.xml文件目录是src/main/resources/log4j2.xml会自动加载该配置文件,无需在web.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} [%t] %-5level %logger{36} - %msg%n" />
		</Console>
		
		<!-- 日志文件输出目录及输出格式设置 -->
		<RollingFile name="RollingFile" fileName="D:\logs\aaa.log"
			filePattern="D:\logs\aaa\$${date:yyyy-MM}\log-%d{MM-dd-yyyy}-%i.log">
			<PatternLayout>
				<Pattern>%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n</Pattern>
			</PatternLayout>
			<Policies>
				<TimeBasedTriggeringPolicy interval="1"
					modulate="true" />
			</Policies>
		</RollingFile>
	</Appenders>

	<Loggers>
		<!-- 测试环境level=debug,生产环境level=info -->
		<Root level="debug">
			<AppenderRef ref="Console" />
			<AppenderRef ref="RollingFile" />
		</Root>
	</Loggers>
</Configuration>

java调用例子

package xxx;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import junit.framework.TestCase;

public class Log4j2Test extends TestCase {
  private static final Logger log = LogManager.getLogger(Log4j2Test.class);

  public void log4jTest() {
    log.info("this is info");
    // 日志配置文件level="debug"时才会输出debug
    if (log.isDebugEnabled()) {
      log.debug("this is {} our {}", "debug in", "context");
    }
    log.warn("this is warn");
    log.error("this is error");
  }
}

log4j官方网站

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值