日志框架之Log4j 2

2022-07-15  本文已影响0人  Tinyspot

Log4j2

执行原理
SLF4J 门面调用 Log4j 2 门面,Log4j 2 门面调用 Log4j 2 实现
可单独使用 log4j2 Logger logger = LogManager.getLogger(Demo2.class); 但建议用门面方式
虽然 Log4j 2 也是日志门面,但它的日志实现功能也很强大,一般用作日志实现,门面用 SLF4J

log4j-api: 日志门面
log4j-core: 日志实现

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

2. 核心概念

3. log4j2.xml

3.1 Layouts

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration>
    <Properties>
        <property name="fileDir">/Users/xingxing.xiao/Downloads</property>
    </Properties>
    <Appenders>
        <Console name="consoleAppender" target="SYSTEM_ERR">
            <PatternLayout pattern="%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n" />
        </Console>
        <File name="fileAppender" fileName="${fileDir}/log4j2.log">
            <PatternLayout pattern="%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n" />
        </File>
        <!-- $${date:yyyy-MM-dd} 指定文件夹 -->
        <RollingFile name="rollingFileAppender" fileName="${fileDir}/log.log" filePattern="${fileDir}/$${date:yyyy-MM-dd}/log-%d{yyyy-MM-dd-HH-mm}-%i.log">
            <PatternLayout pattern="%-5level %d{yyyy-MM-dd HH:mm:ss.SSS} %m%n" />
            <Policies>
                <SizeBasedTriggeringPolicy size="10KB" />
            </Policies>
            <DefaultRolloverStrategy max="30" /> <!-- 同一目录下文件数量限制 -->
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="debug">
            <AppenderRef ref="consoleAppender" />
            <AppenderRef ref="fileAppender" />
            <AppenderRef ref="rollingFileAppender" />
        </Root>
    </Loggers>
</Configuration>
上一篇下一篇

猜你喜欢

热点阅读