博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java8u162环境_java - 日志文件未使用log4j 1.2.17和java8u162进行翻转 - 堆栈内存溢出...
阅读量:6453 次
发布时间:2019-06-23

本文共 2189 字,大约阅读时间需要 7 分钟。

我们在生产环境中面临一个问题,在某些情况下,日志文件不会被翻转。 我们将Log4j版本1.2.17与apache.commons-logging一起使用。 创建一个自定义的附加程序,以将文件翻转。 附加程序正在扩展Log4j的FileAppender。 这是subAppend(LoggingEvent event)方法的算法:

long n = System.currentTimeMillis();

// Has the time come to roll the log file?

if (n >= nextCheck)

{

now.setTime(n);

nextCheck = rc.getNextCheckMillis(now);

rollOver();

reachedMaxSize = false;

else

{

File f = new File(getFile());

// Has the log file has exceeded its maximum size?

if (!reachedMaxSize && f.length() > maxFileSize)

{

// Log file has reached it maximum size.

reachedMaxSize = true;

// Log one last message to the file stating the max has been reached.

LoggingEvent exeededEvent = new LoggingEvent(

getClass().getName(),

Logger.getLogger(getClass().getName()),

Priority.ERROR,

"Maximum log file size has been reached ("+maxFileSize/1024+"KB)",

null);

super.subAppend(exeededEvent);

}

// If the log has not reached its max size, write it. Otherwise,

// send log event to stdout.

if (!reachedMaxSize)

{

super.subAppend(event);

}

else

{

System.out.println(event.getRenderedMessage());

}

这是Log4j.properties文件

log4j.rootLogger=INFO,RCFLog

log4j.appender.RCFLog=com.ge.medit.util.logging.MaxFileSizeRollingFileAppender

log4j.appender.RCFLog.File=runtime/logs/rcf.log

log4j.appender.RCFLog.DatePattern=yyyyMMdd'_'{0}

log4j.appender.RCFLog.Encoding=UTF-8

log4j.appender.RCFLog.Append=true

log4j.appender.ConsoleLog=org.apache.log4j.ConsoleAppender

log4j.appender.ConsoleLog.layout=org.apache.log4j.PatternLayout

log4j.appender.ConsoleLog.layout.ConversionPattern=%p [%t] %c{1}: %m%n

log4j.appender.RCFLog.layout=org.apache.log4j.PatternLayout

log4j.appender.RCFLog.layout.ConversionPattern=@%d{yyyyMMdd HH:mm:ss.SSS}@ %p {%t} %c{1}: %m%n

log4j.logger.GUIEVT=INFO

根据观察,系统上有日期更改。 该日期设置为当前日期之前的3个月。

Current Date- 10th May 2018

nextCheck - 11th May 2018 00:00

Changed Date- 10th March 2018

No backup is created as a condition at line 3 failed.

5月11日再次经过12小时后,该日期更改为当前日期。 到那时,文件的时间戳更改为3月10日。 由于没有RollOver,下一张支票仍然是2018年5月11日00:00。 但是在5月12日00:00,该文件应该已经按照第3行的条件进行了翻转,并且应该已经创建了一个新文件,但没有发生。 此外,文件已达到最大大小。 从那时起,没有日志,直到重新启动系统为止。

Java版本是java8u162 。 虽然我找不到任何帖子说它是否与java有关。

我尝试在测试环境中重现相同的场景,但是一切正常。

有没有人遇到过Log4j这样的问题? 请分享您的意见。 提前致谢。

转载地址:http://icyzo.baihongyu.com/

你可能感兴趣的文章
JAVA - 大数类详解
查看>>
查询指定名称的文件
查看>>
批处理文件
查看>>
1.每次按一下pushbutton控件,切换图片?
查看>>
Python 嵌套列表解析
查看>>
[GXOI/GZOI2019]旧词——树链剖分+线段树
查看>>
android 补间动画的实现
查看>>
2017年广东省ACM省赛(GDCPC-2017)总结
查看>>
第十届蓝桥杯B组C++题目详解和题型总结
查看>>
树的存储结构2 - 数据结构和算法42
查看>>
简单理解函数回调——同步回调与异步回调
查看>>
Android 多个Activity 跳转及传参
查看>>
anroid 广播
查看>>
AJAX POST&跨域 解决方案 - CORS
查看>>
关于最小生成树中的kruskal算法中判断两个点是否在同一个连通分量的方法总结...
查看>>
【译】Linux系统和性能监控(4)
查看>>
开篇,博客的申请理由
查看>>
点滴积累【C#】---C#实现上传word以流形式保存到数据库和读取数据库中的word文件。...
查看>>
Ubuntu常用笔记
查看>>
Token和session 详解
查看>>