配置
首先,在项目中新建一个文件夹,文件夹名为lib
。
新建了lib文件夹后,我们将log4j2
的jar
放入lib
文件夹中。
放入之后我们进入项目结构设置。
然后点击+号导入lib中的两个包,勾选后确认。
这样初步配置就完成了。
使用
我们首先定义一个成员字段
private static Logger logger = LogManager.getLogger(Demo.class.getName());
其实这就是在获取Logger对象,这个对象可以调用一些方法记录日志。
前提是导入了这两个包。
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
这样我们就基本上可以使用了。
XML
不过我们要对Log4j2
进行一定的配置才可以让他数据更加详细和符合要求,我们在src
下新建一个log4j2.xml
文件。
xml
中我们可以书写一些定义和标识。可以自己了解。
我的XML
文件配置如下。
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn">
<appenders>
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
</console>
<file name="log" fileName="log/test.log">
<patternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%1] %-5level-%msg%n"/>
</file>
<RollingFile name="RollingFileInfo" fileName="${sys:user.home}/logs/hpaasvc/info.log"
filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="INFO"/>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/hpaasvc/warn.log"
filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="WARN"/>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
<RollingFile name="RollingFileError" fileName="${sys:user.home}/logs/hpaasvc/error.log"
filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
<ThresholdFilter level="ERROR"/>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</appenders>
<loggers>
<!--过滤掉spring和hibernate的一些无用的debug信息-->
<logger name="org.springframework" level="INFO">
</logger>
<logger name="org.hibernate" level="INFO">
</logger>
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<appender-ref ref="RollingFileWarn"/>
<appender-ref ref="RollingFileError"/>
</root>
</loggers>
</configuration>
然后运行一句输出语句。
我们就可以看到日志的输出了。