如何使用 Log4J2 将自定义级别记录到文件中?
How to log custom level with Log4J2 to 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 替换级别,但没有任何反应。我可以改变什么?
首先,在logger之前定义自定义级别
static Level level = Level.forName("LOGIN", 401);
static Logger logger = LogManager.getLogger();
其次,将相应的行修改如下:
logger.file.name=YOUR_PACKAGE_NAME
logger.file.level=LOGIN
我有以下属性配置文件:
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 替换级别,但没有任何反应。我可以改变什么?
首先,在logger之前定义自定义级别
static Level level = Level.forName("LOGIN", 401);
static Logger logger = LogManager.getLogger();
其次,将相应的行修改如下:
logger.file.name=YOUR_PACKAGE_NAME
logger.file.level=LOGIN