Log4j不写入文件

时间:2013-05-30 10:51:23

标签: java logging log4j

我正在尝试使用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);

    ....

    }

}

未创建文件,我获得的唯一输出是在控制台中。 有什么不对吗?

非常感谢

5 个答案:

答案 0 :(得分:4)

我有类似的问题,并注意到问题是附加.jars。如果你正在使用slf4j和log4j,那么删除slf4j-simple.jar(如果已添加),并确保你的类路径中有slf4j-log4j12-xx.jar。

答案 1 :(得分:1)

以下是我们的log4j属性文件中的一个片段:

  

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

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

C:\Users\JEFF\

希望这会有所帮助。

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

代码工作正常,所以你遗漏了一些东西。 确保文件名是正确的log4j.properties(例如在netbeans中,一个常见错误是创建一个属性文件,因此将属性扩展名设置为log4j.properties.properties) 希望这会有所帮助。

答案 4 :(得分:-1)

只需添加上述答案,请确保log4j.properties文件存储在src文件夹中。否则它将不会被拾取,并将调用默认值。

相关问题