log4j内置日志级别
注意 : intLevel 值越小,级别越高 (log4j2 官方文档)
自定义日志级别
第一步 :声明自定义级别 intLevel参考上面的值
<CustomLevels>
<CustomLevel name="INITLEVEL" intLevel="240" />
</CustomLevels>
第二步 : 配置自定义级别输出
<loggers>
<root level="warn">
<appender-ref ref="Console"/>
</root>
<logger name="initLog" level="INITLEVEL" additivity="false">
<appender-ref ref="Console" />
</logger>
</loggers>
注意 : root的级别一定要比自定义级别高,要不然不能输出。例如warn 的级别是300 ,自定义级别是350 ,那么自定义级别的日志就不能输出了。
第三步:使用自定义级别:
private Logger log = LogManager.getLogger(ScheduleJobServiceImpl.class.getName());
log.log(Level.getLevel("INITLEVEL"), "初始化日志输出测试");
注:官方网站还给出了另一种自定义级别的使用方式。
private static final ExtLogger logger = ExtLogger.create(MyService.class);
//自定义级别
logger.diag("another message");
看起来代码更简介,更易用,
但是需要自己写个日志的扩展对象。有机会的话日后补充。