求大神解决日志文件读写的设计问题!

gagalonghw 2012-11-01 04:12:30
读取不规则的持续增加的日志文件,增加多少读多少,当没有增加的时候,则保存读的文件的length,下次读的时候从这个length开始读。比如最后一次保存的这个length是8000,在这次读完以后,这个log文件被删除,但是配置文件记录的length为8000。
这时候又会有一次同名的log文件在这,程序继续去读它,这个时候应该设置length为0,从第一行开始读


请问:在删除以后重新读的话,这个重新设置length的条件该怎么设计?

如果给length设置一个阈值,每次删除日志重新新建重写,当新写入的日志长度小于这个阈值,这个方法在一定程度上是可行的,但是万一下次查询写日志的时候,一次性写入大于这个阈值怎么办?
...全文
159 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gagalonghw 2012-11-01
  • 打赏
  • 举报
回复
好的,非常感谢![Quote=引用 5 楼 的回复:]
例子恐怕就没时间写了,看有没有好心人给你提供了。


不过其实应用程序自身应该只管写日志文件,且最好每天换1个,删除的工作应该是交给负责分析或负责备份的程序来负责。
[/Quote]
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
例子恐怕就没时间写了,看有没有好心人给你提供了。


不过其实应用程序自身应该只管写日志文件,且最好每天换1个,删除的工作应该是交给负责分析或负责备份的程序来负责。
gagalonghw 2012-11-01
  • 打赏
  • 举报
回复
大神,可以给个例子吗?谢谢啦~~~~~
[Quote=引用 3 楼 的回复:]
只适用于Windows系统,而且关于获取创建时间这里,需要特殊处理。

你原来的配置文件只保存 length,现在改为保存 length 和 createTime

读取时先检查目标日志文件的创建时间,
如果跟createTime不一致,则length清0,全部重新读取;
如果跟createTime一致,则按照length继续读取。
[/Quote]
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
只适用于Windows系统,而且关于获取创建时间这里,需要特殊处理。

你原来的配置文件只保存 length,现在改为保存 length 和 createTime

读取时先检查目标日志文件的创建时间,
如果跟createTime不一致,则length清0,全部重新读取;
如果跟createTime一致,则按照length继续读取。
gagalonghw 2012-11-01
  • 打赏
  • 举报
回复
具体该如何设计呢?[Quote=引用 1 楼 的回复:]
如果是删除原日志文件后再重建的话,创建时间会发生变化的。

如果只是写,则创建时间不发生变化,修改时间发生变化。
[/Quote]
MiceRice 2012-11-01
  • 打赏
  • 举报
回复
如果是删除原日志文件后再重建的话,创建时间会发生变化的。

如果只是写,则创建时间不发生变化,修改时间发生变化。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧