Java tomcat关闭时日志文件被覆盖

Java tomcat关闭时日志文件被覆盖,java,multithreading,spring-mvc,Java,Multithreading,Spring Mvc,我面临一个奇怪的问题。当我在某一天第一次关闭tomcat时,它正在覆盖日志文件内容。然而,在第二次或任何后续重启时,我不会面临这个问题 我在tomcat关机日志中看到以下错误: 23:08:03,390 [] [] INFO XmlWebApplicationContext:873 - Closing Root WebApplicationContext: startup date [Wed Apr 29 23:47:05 BST 2015]; root of context hierarchy

我面临一个奇怪的问题。当我在某一天第一次关闭tomcat时,它正在覆盖日志文件内容。然而,在第二次或任何后续重启时,我不会面临这个问题

我在tomcat关机日志中看到以下错误:

23:08:03,390 [] [] INFO XmlWebApplicationContext:873 - Closing Root WebApplicationContext: startup date [Wed Apr 29 23:47:05 BST 2015]; root of context hierarchy 
23:08:03,397 [] [] INFO ThreadPoolTaskExecutor:203 - Shutting down ExecutorService 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor#1d7b51e8' 
23:11:33,880 [] [] [] INFO PropertiesFactoryBean:172 - Loading properties file from class path resource [apppname/application.properties] 
23:11:41,413 [] [] [] INFO Reflections:238 - Reflections took 5894 ms to scan 112 urls, producing 5518 keys and 32092 values 
23:11:42,242 [] [] [] INFO ThreadPoolTaskExecutor:165 - Initializing ExecutorService 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor#28a50da4' 
23:11:42,596 [] [] [] INFO ContextLoader:325 - Root WebApplicationContext: initialization completed in 11465 ms 
23:11:48,525 [] [] [] INFO PropertiesFactoryBean:172 - Loading properties file from class path resource [apppname/application.properties] 
23:11:55,130 [] [] [] INFO Reflections:238 - Reflections took 5765 ms to scan 112 urls, producing 5518 keys and 32092 values 
23:11:55,807 [] [] [] INFO ThreadPoolTaskExecutor:165 - Initializing ExecutorService 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor#1a46a171' 
23:11:56,081 [] [] [] INFO ContextLoader:325 - Root WebApplicationContext: initialization completed in 9491 ms 
23:12:01,469 [] [] [] INFO PropertiesFactoryBean:172 - Loading properties file from class path resource [apppname/application.properties] 
23:12:08,106 [] [] [] INFO Reflections:238 - Reflections took 5757 ms to scan 112 urls, producing 5518 keys and 32092 values 
23:12:08,793 [] [] [] INFO ThreadPoolTaskExecutor:165 - Initializing ExecutorService 'org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor#7213bc54' 
23:12:09,062 [] [] [] INFO ContextLoader:325 - Root WebApplicationContext: initialization completed in 9260 ms 
日志配置

log4j.rootLogger=INFO, file

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=/logs/logfilename.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
可能的原因是什么

对于其他应用程序,我有相同的log4j配置。但它们工作得非常好。看起来tomcat在某种程度上将日志写入应用程序日志,而不是catalina


仅在一天中第一次重新启动时发生,并且当日志级别设置为INFO或DEBUG not ERROR时

使用log4j Append变量。默认情况下,它应该是真的,虽然

log4j.appender.LOGFILE.Append=true
我还看到您正在使用Rolling Appender,但它不在根记录器中

log4j.rootLogger=INFO, file, RollingAppender

它解决了你的问题吗?嗯!我无法在本地环境中重现此问题。因此,我们将在其他环境中尝试。我认为它必须解决这个问题。唯一的问题是这个问题只有在一天中第一次开始时才会出现。所以如果我明天复制它,我将需要再等一天来测试它是否被修复。这个问题看起来很奇怪,直到找到原因,它似乎还没有被修复。到目前为止,tomcat正在备份当前文件,然后创建新文件并开始编写新日志。现在,有了这个属性,tomcat将首先备份当前文件,然后写入备份文件和新日志文件。当tomcat停止时备份文件不存在时,就会发生这种情况。所以我正在尝试备份文件出现时会发生什么。我将更新…我正在使用根记录器中提到的“文件”作为追加器名称。那有什么问题吗。对不起,我搞不懂。