美文网首页
日志框架之Log4j 2

日志框架之Log4j 2

作者: Tinyspot | 来源:发表于2022-07-15 10:12 被阅读0次

Log4j2

  • https://logging.apache.org/log4j/2.x/
  • Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback's architecture.
  • 插件模式
  • Logger logger = LoggerFactory.getLogger(Demo2.class);

执行原理
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. 核心概念

  • LoggerContext: log的上下文环境
  • Configuration: 每一个 LoggerContext 都有一个有效的 Configuration
  • Logger
  • LoggerConfig 记录日志

3. log4j2.xml

  • Log4j 2 格式参考的是 logback, 但标签名首字母都是大写字母开头

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>

相关文章

网友评论

      本文标题:日志框架之Log4j 2

      本文链接:https://www.haomeiwen.com/subject/nrtxirtx.html