Log4j2记录到文件和控制台

时间:2018-10-27 11:33:44

标签: java log4j2

我在Log4j2 2.11.1项目中使用Java来登录控制台和文本文件。我将其初始化如下:

private static Logger logger = LogManager.getLogger(readAllLinks.class);

我创建了resources/log4j2.propertie的文件来设置偏好设置。

name=PropertiesConfig
property.filename = logs
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=${filename}/propertieslogs.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.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT

/logs/propertieslogs.log文件是在文件系统上创建的,但是为空。我尝试了所有日志级别。

1 个答案:

答案 0 :(得分:2)

在第rootLogger.appenderRefs = stdout行中,每个记录操作都转到控制台附加程序(您会在标准输出中看到它)。

要同时登录到标准输出和文件,请使用

rootLogger.level=debug
rootLogger.appenderRefs=stdout,logfile
rootLogger.appenderRef.stdout.ref=STDOUT
rootLogger.appenderRef.logfile.ref=LOGFILE
相关问题