我正在尝试使用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);
....
}
}
未创建文件,我获得的唯一输出是在控制台中。 有什么不对吗?
非常感谢
答案 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文件夹中。否则它将不会被拾取,并将调用默认值。