美文网首页
日志框架之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