一、自定义日志级别
1、定义日志级别
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class CustomLogUtils {
//定义公共处理类
public Logger logger = LogManager.getLogger(this.getClass());
//定义业务操作日志级别(级别越高,数字越小) off 0, fatal 100, error 200, warn 300, info 400, debug 500
public static final Level ACTION_LEVEL = Level.forName("ACTION", 350);
public static final Level VISIT_LEVEL = Level.forName("VISIT", 360);
}
2、使用
public class TestService extends CustomLogUtils{
public void test(){
logger.log(CustomLogUtils.ACTION_LEVEL, "操作级别日志内容");
logger.log(CustomLogUtils.ACTION_LEVEL, "操作级别日志内容打印参数{},{}","参数1","参数2");
logger.log(CustomLogUtils.VISIT_LEVEL, "访问级别日志内容");
logger.log(CustomLogUtils.VISIT_LEVEL, "访问级别日志内容打印参数{},{}","参数1","参数2");
}
}
二、日志文件单独存储
log4j2.xml配置
<Configuration status="info">
<CustomLevels>
<-- off 0, fatal 100, error 200, warn 300, info 400, debug 500-->
<CustomLevel name="ACTION" intLevel="360"/>
<CustomLevel name="VISIT" intLevel="350"/>
</CustomLevels>
......
<Appenders>
<RollingFile name="RollingFileAction" fileName="logs/action-${sys:lo4j2.filename}.log"
filePattern="logs/action-${sys:lo4j2.filename}-%d{MM-dd-yy}-%i.log.gz">
<Filters>
<!--VISIT的级别(intLevle小于等于visit)拒绝-->
<ThresholdFilter level="VISIT" onMatch="DENY" onMisMatch="NEUTRAL"/>
<!--ACTION级别的输出-->
<ThresholdFilter level="ACTION" onMatch="NEUTRAL" onMisMatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
</RollingFile>
<RollingFile name="RollingFileVisit" fileName="logs/action-${sys:lo4j2.filename}.log"
filePattern="logs/action-${sys:lo4j2.filename}-%d{MM-dd-yy}-%i.log.gz">
<Filters>
<!--低于WARN的级别(intLevle大于等于warn)不输出-->
<ThresholdFilter level="WARN" onMatch="DENY" onMisMatch="NEUTRAL"/>
<!--VISIT级别的输出-->
<ThresholdFilter level="VISIT" onMatch="NEUTRAL" onMisMatch="DENY"/>
</Filters>
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
</RollingFile>
......
本文介绍了如何在Log4j2中定义自定义日志级别并实现日志文件的单独存储,包括配置文件的详细设置和使用方法。
4663

被折叠的 条评论
为什么被折叠?



