log4j2配置详解

本文只是对log4j的配置文件做一个解释

我是在maven 项目中使用的,先引入jar如下

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.1</version>
</dependency>

配置文件log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">  
    <!-- 输出端 -->
  <appenders>  
    <!-- 控制台输出 -->
    <Console name="Console" target="SYSTEM_OUT">  
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>  
    </Console>  
    <!-- 文件输出: filename是写入的文件,filePattern表示当写入的文件大小达到设定的大小时旧文件存储的文件名及路径 -->
    <RollingRandomAccessFile name="DevLog"
        fileName="D:/logs/ecitic.log" filePattern="D:/logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
        <!-- 日志输出格式 -->
        <PatternLayout charset="UTF-8" Pattern="%d %p %c [%t] %m%n" />
        <Policies>
            <TimeBasedTriggeringPolicy interval="24" modulate="true"/>
            <SizeBasedTriggeringPolicy size="1 MB"/>
        </Policies>
    </RollingRandomAccessFile>
  </appenders>  
  <loggers>  
    <!-- 日志输出的级别即输出debug及以上级别的日志 -->
    <root level="debug">  
      <appender-ref ref="DevLog"/>  
    </root>  
  </loggers>  
</configuration>  
Log4j2是一个强大的日志框架,用于Java应用程序的日志记录。它的配置相对灵活,可以满足各种复杂场景的需求。以下是Log4j2的基本配置详解: 1. **XML配置**: - 使用`log4j2.xml`文件进行配置,例如: ```xml <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="${sys:logging.level:-INFO}"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration> ``` - `Appenders`部分定义了输出日志的方式(如控制台、文件等),`Loggers`设置日志级别和使用的appender。 2. **JSON配置**: - 使用`log4j2.json`文件,结构类似,更便于动态调整。 ```json { "Configuration": { "Status": "WARN", "Appenders": { "Console": { "type": "Console", "layout": { "pattern": "%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" } } }, "Loggers": { "Root": { "level": "${sys:logging.level:-INFO}", "Appenders": ["Console"] } } } } ``` 3. **环境变量**: - 可以通过系统属性 `${sys:property_name}` 来指定配置值,例如`${sys:logging.level}` 设置默认的日志级别。 4. **异步处理**: - Log4j2支持异步日志记录,通过`AsyncAppender`组件可以提高性能。 5. **布局器和过滤器**: - 可以定制输出的格式,比如时间戳、线程名、日志级别、类别等,并使用过滤器对日志进行筛选。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值