简体   繁体   English

Log4j2记录到文件和控制台

[英]Log4j2 logging to file and console

I use Log4j2 2.11.1 in my Java project to log to console and also to text file. 我在Java项目中使用Log4j2 2.11.1记录到控制台以及文本文件。 I initialze it as follows: 我将其初始化如下:

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

I created resources/log4j2.propertie s file to set preferences. 我创建了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 file is created on filesystem, but it is empty. /logs/propertieslogs.log文件是在文件系统上创建的,但是为空。 I tried it with all the log levels. 我尝试了所有日志级别。

With line rootLogger.appenderRefs = stdout , every logging operation goes to the console appender (and you see it in the standard output). 使用rootLogger.appenderRefs = stdout ,每个日志记录操作都将转到控制台附加程序(您会在标准输出中看到它)。

To log both to the standard output and to file, use 要将日志记录到标准输出和文件中,请使用

rootLogger.level=debug
rootLogger.appenderRefs=stdout,logfile
rootLogger.appenderRef.stdout.ref=STDOUT
rootLogger.appenderRef.logfile.ref=LOGFILE

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM