如何使用Log4J2将自定义级别记录到文件?

时间:2017-03-28 05:19:21

标签: logging log4j2 properties-file

我有以下属性配置文件:

name=ACME_CRM
property.filename=log
appenders=console,file

appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type=File
appender.file.name=LOGFILE
appender.file.fileName=target/${filename}.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers=file
logger.file.name=LOGIN
logger.file.level=401
logger.file.appenderRefs=file
logger.file.appenderRef.file.ref=LOGFILE

rootLogger.level=debug
rootLogger.appenderRefs=stdout
rootLogger.appenderRef.stdout.ref=STDOUT

在我的代码中我做了:

logger.log(Level.forName("LOGIN", 401), userName);

然而,当我去尾随我的日志文件时,没有任何显示。我究竟做错了什么?我尝试用LOGIN替换级别,没有任何反应。我能改变什么?

1 个答案:

答案 0 :(得分:1)

首先,在记录器之前定义自定义级别

static Level level = Level.forName("LOGIN", 401);
static Logger logger = LogManager.getLogger();

其次,更改相应的行如下:

logger.file.name=YOUR_PACKAGE_NAME
logger.file.level=LOGIN