美文网首页
log4j2入门配置

log4j2入门配置

作者: 两句挽联 | 来源:发表于2018-08-22 15:28 被阅读0次

作为一个JAVA开发者,log4j的名字,大家没用过至少也听过,作为一个名声在外的日志打印工具,至今已有10几年的历史了。其1.X的版本,停留在了1.2.7,且在2012年就停止更新了。作为1.X的优化版本,log4j2至今已有6年的发展历史了,这边简单就其进行一些介绍。

简介

关于log4j2的改进,大家可以上官网查看,这边简单进行一些翻译。

  • log4j2被设计作为一种审计日志的框架,即当reconfiguring的时候不会产生日志丢失的现象
  • log4j2 包含了下一代的 Asynchronous Loggers ,当在多线程的场景,Asynchronous Loggers比log4j1.X和logback能有高达10倍的吞吐和更为低的时延。
  • log4j2对GC更友好,能减轻进程的GC压力
  • 更为方便使用的插件系统
  • 配置更为简单和人性化
  • 支持定义的日志级别
  • 支持lambda表达式
  • 支持 消息对象
  • 对Filter的更好的支持
  • 允许数据以各种形式传输
  • Layout返回byte类型而不是string类型
  • 支持TCP、UDP和BSD系统日志和RFC 5424 格式
  • 利用Java5的并发特性,解决了log4j1.X版本的死锁问题
  • 开源,支持代码贡献

使用教程

这边简单介绍一下其使用的方式

  • 首先引入相应的jar包,已maven为例
<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.11.0</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.0</version>
  </dependency>
</dependencies>
  • 配置文件置于classpath中(会默认按照这类顺序查找),以下为例
    image.png
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Appenders>
        <!-- filePattern must use %i so that DefaultRolloverStrategy max take effective-->
        <RollingFile name="RollingFile" fileName="logs/app.log"
                     filePattern="logs/app-%i.log">
            <PatternLayout>
             
                <Pattern>%-d{yyyy-MM-dd HH:mm:ss}|%p|%X{IP}|%t|%X{TranslocationID}|%F:%L|%m%n</Pattern>
            </PatternLayout>
            <Policies>
                <!--<TimeBasedTriggeringPolicy interval="1"/>-->
                <!-- each log file take 100MB -->
                <SizeBasedTriggeringPolicy size="100MB"/>
            </Policies>
            <!-- rolling with max 25 -->
            <DefaultRolloverStrategy max="25"/>
        </RollingFile>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout>
                <Pattern>%-d{yyyy-MM-dd HH:mm:ss}|%p|%X{IP}|%t|%X{TranslocationID}|%F:%L|%m%n</Pattern>
            </PatternLayout>
        </Console>
    </Appenders>
    <Loggers>
        <!-- change to INFO or above in production envirionment -->
        <Root level="debug">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
</Configuration>

请忽视%X{IP}%X{TranslocationID},这是我们内部定义的占位符。

  • 调用
    private static final Logger LOGGER=LogManager.getLogger();
    public static void main(String[] args) {
        LOGGER.info("this is my {} log","first");
    }
2018-08-22 14:51:21|INFO||main||Test.java:13|this is my first log

以上就是log4j2的入门,更为详细的配置点击这里

相关文章

网友评论

      本文标题:log4j2入门配置

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