【问题标题】:log4j file not created on my system but showing error on consolelog4j 文件未在我的系统上创建,但在控制台上显示错误
【发布时间】:2016-02-23 06:20:03
【问题描述】:

我正在 Swing 上开发基于桌面的应用程序,但无法在客户端桌面上生成 log4j 文件。

我的 log4j.property 文件是:

log4j.rootLogger=DEBUG, SECOND_APPENDER
log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender
log4j.appender.NotConsole.maxFileSize=20MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n
log4j.appender.file.File=C:\\log4j-application.log
log4j.logger.com.jd.listing=DEBUG,SECOND_APPENDER

我的 log4j.xml 文件是:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration package="log4j.test"
status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
</Appenders>
<Loggers>
    <Logger name="log4j.test.Log4jTest" level="trace">
        <AppenderRef ref="Console"/>
    </Logger>
    <Root level="trace">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
</Configuration>

请帮助我在我的驱动器上生成 log4j 文件。 提前致谢

【问题讨论】:

  • 您看到了什么错误?请注意,log4j 配置文件是通过类路径解析的,因此,如果 jar 中有另一个位于类路径中较早的位置,则将使用另一个。
  • 您可能没有写入客户端`c:`根目录的权限
  • @Kenney -- 我没有收到任何错误,我的桌面应用程序运行良好。我只想在某个文件中打印日志。我放了 log4j 文件,但在我的桌面上找不到该文件。当我在 Eclipse(Luna)上启动我的项目时,错误会打印在控制台中。我希望将这些错误打印在文件中(如 word、txt 等)。
  • @MadProgrammer——我已将该路径更改为 D:\\getLog.log。但无法获取日志

标签: java xml swing log4j error-log


【解决方案1】:

试试这个,我已经用标准输出替换了 SECOND_APPENDER 并添加了标准输出

log4j.rootLogger=DEBUG, stdout, R
log4j.appender.NotConsole=org.apache.log4j.RollingFileAppender
log4j.appender.NotConsole.maxFileSize=20MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%m%n
log4j.appender.file.File=C:\\log4j-application.log
log4j.logger.com.jd.listing=DEBUG

# Standard output logging
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm-ss}[%x]::[%t]:(%l:%L):%-5p:%c{1}:%m%n

# Rolling file logging
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=mylogfile.log
log4j.appender.R.MaxFileSize=5MB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{MMM:dd:HH:mm:ss,SSS}:[%t]:(%C{1}.%M:%L):%-5p:%c{1}:%m%n

log4j.xml 不是必需的。

【讨论】:

  • 我按照您的建议进行了更改,但仍然无法生成日志文件
  • 我在属性文件中添加了一个第二附加程序。这会将输出记录到名为“mylogfile.log”的文件中。您现在应该能够看到控制台上的输出以及日志文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-14
  • 2023-01-08
相关资源
最近更新 更多