【问题标题】:Log4j doesn't write in fileLog4j 不写入文件
【发布时间】:2013-05-30 10:51:23
【问题描述】:

我正在尝试使用 log4j-1.2.8.jar 在文件中写入日志。

这是我在类路径中的 log4j.properties 文件

log4j.rootLogger=INFO, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\\temp\\loging.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n


log4j.logger.mypackage.com=DEBUG, myappender
log4j.additivity.mypackage.com=false

log4j.appender.myappender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.myappender.datePattern='-'dd'.log'
log4j.appender.myappender.File=C:\\temp\\loging2.log
log4j.appender.myappender.layout=org.apache.log4j.PatternLayout
log4j.appender.myappender.layout.ConversionPattern=%-6r %d{ISO8601} %-5p %40.40c %x - %m\n

这是我尝试输出到文件中的 java 代码片段:

public class MyClass implements Serializable
{
    private static Logger logger=Logger.getRootLogger();

    ....
    private void myMethod() {
    ....

        logger.info("info"+sql);

    ....

    }

}

该文件未创建,我得到的唯一输出是在控制台中。 有什么问题吗?

非常感谢

【问题讨论】:

  • 对我来说效果很好。您的代码完全没有问题。
  • 你的 temp 可以是 windows/temp 吗?

标签: java logging log4j


【解决方案1】:

我遇到了类似的问题,并注意到问题出在附加的 .jar 上。如果您将 slf4j 与 log4j 一起使用,则删除 slf4j-simple.jar(如果已添加)并确保您的类路径中有 slf4j-log4j12-xx.jar。

【讨论】:

    【解决方案2】:

    这是来自我们的 log4j 属性文件之一的 sn-p:

    log4j.appender.ConsoleFileAppender.File=${user.home}/.bqjdbc/bqjdbconsole.log

    这将在 user.home 下生成日志文件,因此它也可以在 linux 上运行。 如果您在 Windows 上的用户名是“JEFF”,那么这将在以下路径下创建一个文件夹:

    C:\Users\JEFF\
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我刚刚检查了您的代码原样。它工作得非常好。

      尝试更改日志文件的路径,可能您没有在这些位置写入的权限。

      【讨论】:

        【解决方案4】:

        代码工作得很好,所以你错过了一些东西。 确保文件名是正确的 log4j.properties(例如在 netbeans 中,一个常见的错误是创建一个属性文件 e 放置属性扩展名,从而导致 log4j.properties.properties) 希望这会有所帮助。

        【讨论】:

          【解决方案5】:

          只是添加到上面的答案,确保log4j.properties 文件存储在 src 文件夹中。否则它不会被拾取,并且会调用默认值。

          【讨论】:

            猜你喜欢
            • 2014-08-15
            • 2014-09-26
            • 2017-08-27
            • 2016-01-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-11-06
            • 1970-01-01
            相关资源
            最近更新 更多