我在log4j上使用slf4j。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
log4j.properties位于WEB-INF文件夹中,其内容如下:
log4j.rootLogger=DEBUG, stdout, file
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\logs\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
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
在具有相同版本Tomcat的另一个环境中,同一个存储库工作正常,登录到文件...
答案 0 :(得分:4)
你说这个相同的配置文件在不同的环境下工作正常。您能否详细介绍一下环境之间的差异。例如他们都在Windows上吗?在另一个环境中工作正常的事实表明您的配置很好,但是您的环境存在一些问题。以下是一些要检查的事项:
tomcat进程是否有权写入该文件 - 即是否需要写入D:\ logs \ log4j.log的管理员权限?
确保tomcat目录周围没有任何临时文件可能会阻止您的更改生效。可以肯定的是,停止tomcat,从%CATALINA_HOME%\ webapps中删除扩展的war,删除%CATALINA_HOME%\ temp和%CATALINA_HOME%\ work
检查您的类路径上是否没有任何其他log4j配置文件,因为这些文件可能会覆盖您的log4j文件并阻止其生效。要仔细检查这一点,您可以尝试暂时删除log4j.properties文件,看看是否收到消息称日志系统未正确初始化。
答案 1 :(得分:1)
或许你的log4j.properties根本就没有读过。如果找不到,则log4j将使用默认配置,您可能甚至不知道它。 尝试传递这一行
-Dlog4j.configuration=file:///D:/yourPathToFile/log4j.properties
作为运行配置中的VM参数,看看它是否有帮助。
答案 2 :(得分:1)
我遇到了同样的问题,将log4j.log放在源代码中。我以为它是在EAR文件中编译的,但事实并非如此。假设它使用默认值。
答案 3 :(得分:0)
而不是:
log4j.appender.mainAppender.File = mainloggs.log
log4j.appender.mainAppender.Append =真
使用:
log4j.appender.file.File=mainloggs.log
log4j.appender.file.Append=true
答案 4 :(得分:0)
当您不在类路径中添加log4j.properties文件时,可能会出现此问题。要解决此问题,请按照以下步骤操作: -
答案 5 :(得分:0)
您的log4j.properties
文件应位于WEB-INF/classes
,而不是WEB-INF
。 WEB-INF
不在Web应用程序类路径中,但WEB-INF/classes
是。
答案 6 :(得分:0)
对于基于Maven的项目,请将log4j.properties保存在src / main / resources
中答案 7 :(得分:0)
尝试
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.Append=true
如果不起作用。请把你的web.xml
答案 8 :(得分:0)
我遇到了同样的问题。它曾经工作了一段时间但现在没有工作。 我想这不是log4j2或slf4j的问题(就像我的情况一样),而是使用配置文件的相对路径。
如果您更新了Java或更新IDE或更改了某些系统变量或文件夹的相对路径,那么您的问题与我的问题类似。
可能的修复/解决方法 -
答案 9 :(得分:0)
在Windows上提及文件路径时尝试使用该方案。不需要在其他平台上以这种方式提及它,但需要在Windows上。我观察到了没有方案的文件路径问题。
log4j.appender.file.File=file://d:/logs/log4j.log
答案 10 :(得分:0)
因此,在tomcat上编写Web应用程序时,我没有写入.log文件的类似问题。最后,我将文件路径更改为Order.count 6
Order.sum(:total) 12,000
Order.pluck(:total) [nil, nil, 2000, 10000, nil, nil]
Order.all.map(&:total) [0, 5010, 0, 0, 16110, 0]
#<Order id: 6, user_id: 1, artist_id: nil, address_id: nil, paid_at: nil, payment_type: nil, guid: "a6471c15680a0fbcd3f515a1bdf83566", created_at: "2015-09-02 07:24:37", updated_at: "2015-09-02 07:24:37", ordered_at: nil, total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil>
#<Order id: 5, user_id: 1, artist_id: nil, address_id: 14, paid_at: "2015-09-02 07:24:36", payment_type: 0, guid: "b68989c73bc0af34e3eef56abbcb306c", created_at: "2015-09-01 08:58:07", updated_at: "2015-09-02 07:24:36", ordered_at: "2015-09-02 07:24:36", total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil>
#<Order id: 4, user_id: 1, artist_id: nil, address_id: 1, paid_at: nil, payment_type: 2, guid: "1863cc6f2884b88598c4524d564b8a4a", created_at: "2015-09-01 06:07:52", updated_at: "2015-09-01 06:07:52", ordered_at: "2015-08-31 15:00:00", total: 2000, conveni_name: nil, conveni_code: nil, invoice_id: nil>
#<Order id: 3, user_id: 1, artist_id: nil, address_id: 1, paid_at: "2015-08-30 06:07:52", payment_type: 0, guid: "a6f7e22fc9ea8bdccdbdcbb00d9ea250", created_at: "2015-09-01 06:07:52", updated_at: "2015-09-01 06:07:52", ordered_at: "2015-08-29 06:07:52", total: 10000, conveni_name: nil, conveni_code: nil, invoice_id: nil>
#<Order id: 2, user_id: 1, artist_id: nil, address_id: 11, paid_at: "2015-09-01 08:58:06", payment_type: 0, guid: "f29dd23315078fce2e5b38e16d027c45", created_at: "2015-09-01 06:06:33", updated_at: "2015-09-01 08:58:06", ordered_at: "2015-09-01 08:58:06", total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil>
#<Order id: 1, user_id: nil, artist_id: nil, address_id: nil, paid_at: nil, payment_type: nil, guid: "6f2ffd0e8ba491fba10d69b73e717384", created_at: "2015-09-01 03:08:44", updated_at: "2015-09-01 03:08:44", ordered_at: nil, total: nil, conveni_name: nil, conveni_code: nil, invoice_id: nil>
之类的相对路径。然后我注意到当我使用tomcat 7运行程序时,我在\ bin目录中找到了日志文件而不是tomcat安装中的\ log目录。
答案 11 :(得分:0)
log4j.appender.file.File=${user.home}\\Logs\\mylogfile.log
答案 12 :(得分:0)
我有同样的问题。事实证明,我在Tomcat中有另一个包含另一个log4j.properties文件的Web应用程序。删除此应用程序后,事情正在按预期工作