第一步: 官网下载安装包
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
原创文章,转载标注
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)