log4j 2 的相关配置(亲自爬坑)

it2022-05-05  179

第一步: 官网下载安装包

Apache官网镜像: http://mirrors.tuna.tsinghua.edu.cn/apache/logging/log4j/2.12.0/apache-log4j-2.12.0-bin.zip

第二步 导包到项目

下载的log4j 2中的jar包非常多,读者根据自己情况导包,不要全部导入,引用包时会增加困扰 作者写的一个小项目,所以只导了两个jar包

log4j-api-2.12.0.jar log4j-core-2.12.0.jar

第三步 配置log4j2.xml

建议直接放在src文件下 这个强烈建议自己看懂xml,网上博主讲解的资源很多(广泛撒网,重点收获) 这里放上作者自己的配置(附注释)

<?xml version="1.0" encoding="UTF-8"?> <configuration status="error"> <!--定义所有的输出配置--> <appenders> <!--输出到控制台的配置--> <Console name="Console" target="SYSTEM_OUT"> <!--输出level及以上级别的信息(onMatch)--> <!--其他的直接拒绝(onMismatch)--> <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/> <!--输出日志的格式--> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M ==> %msg%xEx%n"/> </Console> <!--输出到文件,每次运行程序会自动清空--> <!--由append属性决定--> <File name="log" fileName="log/log.log" append="false"> <ThresholdFilter level="all" onMatch="ACCEPT" onMismatch="DENY"/> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M ==> %msg%xEx%n"/> </File> <!--输出到文件(不会被清空,一直记录)--> <!--按年份-月份建立的文件夹下面并进行压缩,作为存档--> <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/> <!--滚动日志策略,规定什么时候新建一个文件--> <Policies> <!--时间规定,超过新建一个文件--> <!--interval表示一小时的间隔,默认为一小时--> <TimeBasedTriggeringPolicy interval="24" modulate="true" /> <!--每次大小超过size,则这size大小的日志会自动存入--> <SizeBasedTriggeringPolicy size="50MB"/> </Policies> </RollingFile> </appenders> <!--定义logger--> <!--只有定义了logger并引入的appender,appender才会生效--> <loggers> <!--执行Console的配置--> <logger name="test" level="debug"> <appender-ref ref="Console"/> </logger> <!--建立一个默认的root的logger--> <root level="debug"> <!-- <appender-ref ref="Console"/>--> <!-- <appender-ref ref="log"/>--> <!-- <appender-ref ref="RollingFile"/>--> </root> </loggers> </configuration>

第四步 代码中引入

导包一定要正确,导入下面这个jar包里面的Logger

log4j-api-2.12.0.jar

用就一句代码

// 创建logger对象 private static Logger logger = LogManager.getLogger("test"); // 调用内置方法 logger.debug("hello world");

第五步 自信满满测试代码

然后…

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console…

甩了我一条ERROR,抽得我脸痛

然后参考下面的博主的方法,解决ERROR

https://www.cnblogs.com/moonpool/p/6548266.html

在项目中新建一个log4j2.component.properties文件 然后填上参数

# 更改log4j 2的系统参数 log4j2.loggerContextFactory=org.apache.logging.log4j.core.impl.Log4jContextFactory # 填上log4j2.xml的相对路径 log4j.configurationFile=./log4j2.xml

然后再run一次项目

成功使用log4j 2

附上作者成功效果图

参考文献

https://www.cnblogs.com/moonpool/p/6548266.html

原创文章,转载标注


最新回复(0)