log4j 不能按小时备份日志!

时间:2021-08-10 21:53:11
log4j 使用遇到问题 无法按小时备份日志!
配置文件如下:

# Set log levels
log4j.rootLogger = DEBUG, Console, LogFile
  
# Output the log info to the Java Console
log4j.appender.Console = org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target = System.out
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Threshold = DEBUG
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} -[%-9t] %-5p %-4c %x -%m%n

# Save the log info to the log file one day.
log4j.appender.LogFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFile.File = logs/EII_LOG/EII_Log.log
log4j.appender.LogFile.Append = true
log4j.appender.LogFile.ImmediateFlush = true
log4j.appender.LogFile.Threshold = DEBUG
log4j.appender.LogFile.Encoding = UTF-8
log4j.appender.LogFile.layout = org.apache.log4j.PatternLayout
log4j.appender.LogFile.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss.SSS} -[%-9t] %-5p %-4c %x -%m%n
log4j.appender.LogFile.DatePattern = '.'yyyy-MM-dd-HH

19 个解决方案

#1


log4j.appender.LogFile.DatePattern = '.'%-d{yyyy-MM-dd-HH}

#2


log4j.appender.LogFile.DatePattern=''.''yyyy-MM-dd-HH: 每小时 

#3


没有用啊。。。。

本机测试没问题  发布应用后 不按小时备份 
过一小时就替换原来的日志文件了

#4


有朋友能指教指教吗

#5


友情帮顶

#6


log4j.appender.LogFile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LogFile.DatePattern='.'yyyy-MM-dd-HH 

 这样是可以的··· 

#7


可是我的并没有成功,一个小时后会覆盖原来的log文件,不会备份

#8


看看你的磁盘是不是满啦,无法创建新文件啦

#9


磁盘空间没有满, 每到一个小时,并不备份log,而是重新在这个log开始写日志,日志文件始终是有一个,就是当前这个小时的。

#10


让人费解的是,我在main函数启动10个线程,同时写日志,在本机测试时可以实现每小时备份,但是我发布到websphere后日志好像就不能备份了,只有当前这个小时的日志。

#11


看了你配置没什么问题,不知道什么原因~!

#12


本机可以。。。
是不是配置问题呢

#13


楼主检查服务器配置吧

#14


服务器是WebSphere6.1 问题在什么地方呢

#15


我的应用 是多线程 的      好多线程 都用log记录日志 
配置文件没问题  
但是就是不按小时备份,有人能帮帮忙 吗

#16


多线程,拼命写日志的时候也遇到这个问题了

没有解决

#17


本地起线程  写可以   发布到Websphere 就不行了

#18


有人知道吗   急啊

#19


commons-logging.jar---WAS有默认包,而且有路径优先级,你把WAS的包给置换了就可以了。但是,不保证这样会不会影响别的部署。

目前你最好下个最新包然后在MANIFEST.MF文件中 写上路径。

Manifest-Version: 1.0

Class-Path: 这里写上新包路径,例如:

Class-Path: lib\common_logging.jar 

log4j  写上新包的实现工厂类。

如果不行就自己拿主意看看是不是覆盖。

#1


log4j.appender.LogFile.DatePattern = '.'%-d{yyyy-MM-dd-HH}

#2


log4j.appender.LogFile.DatePattern=''.''yyyy-MM-dd-HH: 每小时 

#3


没有用啊。。。。

本机测试没问题  发布应用后 不按小时备份 
过一小时就替换原来的日志文件了

#4


有朋友能指教指教吗

#5


友情帮顶

#6


log4j.appender.LogFile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.LogFile.DatePattern='.'yyyy-MM-dd-HH 

 这样是可以的··· 

#7


可是我的并没有成功,一个小时后会覆盖原来的log文件,不会备份

#8


看看你的磁盘是不是满啦,无法创建新文件啦

#9


磁盘空间没有满, 每到一个小时,并不备份log,而是重新在这个log开始写日志,日志文件始终是有一个,就是当前这个小时的。

#10


让人费解的是,我在main函数启动10个线程,同时写日志,在本机测试时可以实现每小时备份,但是我发布到websphere后日志好像就不能备份了,只有当前这个小时的日志。

#11


看了你配置没什么问题,不知道什么原因~!

#12


本机可以。。。
是不是配置问题呢

#13


楼主检查服务器配置吧

#14


服务器是WebSphere6.1 问题在什么地方呢

#15


我的应用 是多线程 的      好多线程 都用log记录日志 
配置文件没问题  
但是就是不按小时备份,有人能帮帮忙 吗

#16


多线程,拼命写日志的时候也遇到这个问题了

没有解决

#17


本地起线程  写可以   发布到Websphere 就不行了

#18


有人知道吗   急啊

#19


commons-logging.jar---WAS有默认包,而且有路径优先级,你把WAS的包给置换了就可以了。但是,不保证这样会不会影响别的部署。

目前你最好下个最新包然后在MANIFEST.MF文件中 写上路径。

Manifest-Version: 1.0

Class-Path: 这里写上新包路径,例如:

Class-Path: lib\common_logging.jar 

log4j  写上新包的实现工厂类。

如果不行就自己拿主意看看是不是覆盖。

#20