【问题标题】:why is my log file empty when I use log4j2?为什么我使用 log4j2 时我的日志文件是空的?
【发布时间】:2020-11-10 01:51:43
【问题描述】:

请帮我调试一下——我在使用 log4j2 时得到一个空日志文件。

这是我的 log4j2.properties 文件:

# Root logger option
name=PropertiesConfig
property.filename = logs
appenders = stdout, file

# stdout will print logs on console
appender.stdout.name = consoleLogger
appender.stdout.type = Console
appender.stdout.target = System.out
appender.stdout.layout.type = PatternLayout
appender.stdout.layout.pattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


# file will print logs in file
appender.file.name = fileLogger
appender.file.type = File
appender.file.fileName=ProtScannerLog.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

loggers=file
logger.file.name = log4j2.properties
logger.file.level = info
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = fileLogger

rootLogger.level = info
rootLogger.appenderRefs = stdout, file
rootLogger.appenderRef.stdout.ref = consoleLogger
rootLogger.appenderRef.file.ref = fileLogger

# added for debugging
# logs the SQL statements
log4j.logger.org.hibernate.SQL=DEBUG
# Logs the JDBC parameters passed to a query
log4j.logger.org.hibernate.type=TRACE
log4j.appender.hb=org.apache.log4j.ConsoleAppender 
log4j.appender.hb.layout=org.apache.log4j.PatternLayout

还有我的 log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
  <Appenders>
    <File name="File" fileName="ProtScannerLog.log" append="true"> 
        <PatternLayout pattern="%d %t %-5p %c{2} - %m%n"/> 
    </File> 
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="debug">
        <AppenderRef ref="Console" level="info" />
        <AppenderRef ref="File" level="error" />
    </Root>
  </Loggers>
</Configuration>

当我运行时,我在运行代码的目录中获取日志文件,但它是空白的。我在控制台中看到了正确的消息。我也想将此日志文件放在 C:\Users\username 中,但我无法指定该位置。任何帮助将非常感激。提前致谢。

【问题讨论】:

    标签: java logging configuration log4j2 appender


    【解决方案1】:

    应该是评论,但我没有声望,所以必须这样发布:)

    我刚刚复制粘贴了您的配置,它生成了 ProtScannerLog.log 文件,其中包含几行。 所以肯定不是 log4j2.properties 配置问题。

    关于我可以建议替换的文件的位置:

    property.filename = logs
    

    通过

    property.filename = C:\\Users\\username
    

    然后参考“appender.file.fileName”定义中的属性:

    appender.file.fileName=${filename}\\ProtScannerLog.log
    

    它将在您指定的任何文件夹下创建文件。

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 2017-12-01
      • 2011-12-12
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 1970-01-01
      相关资源
      最近更新 更多