log4j不记录文件

时间:2017-05-04 09:40:04

标签: java logging log4j2

我正在使用log4j来登录控制台和文件。它只适用于控制台,但不适用于文件,认为正在创建文件

这是我的配置文件:

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}/my_server_logs.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=guru.springframework.blog.log4j2properties
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

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

我错过了什么?

2 个答案:

答案 0 :(得分:4)

缺少文件追加器和根记录器之间的连接。 在属性文件的底部添加以下行:

rootLogger.appenderRef.file.ref = LOGFILE

它将按预期工作。

答案 1 :(得分:0)

我认为您希望将变量$ {filename}替换为property.filename。

的值

你可以尝试用硬路径替换$ {filename}并重试(例如Windows上的'C:\'或类似Unix的'/ tmp /')。