浏览 9203 次
锁定老帖子 主题:Log4j是如何保证线程安全或多进程安全?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-12
或者这样表达,多个线程同时将他们的LogEvent发送到某个manager process-->信息排队-->缓存,同时manager process取出所有缓存的日志信息并一条一条的将他们写入文件中去?(有且只有一个线程在实际操作文件)? 我看了一些log4j的源码,以FileAppender为例,似乎是没个log实例直接调用FileWiiter来实现的将日志信息写入文件的。难道不是如我上面提到的那种方式? 希望有人可以讨论一下。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-16
没有仔细看过log4j的源代码。
lo4j的写日志是异步的,我感觉会使楼主上面说的方式。 楼下的继续。 |
|
返回顶楼 | |
发表时间:2007-01-16
我这几天看了一些Log4j的API文档和源码,Log4j中有一个AsyncAppender可以做一个桥接的方式将其他的Appender连接起来。而这个AsyncAppender的作用就是是Log4j对所有的LogEvent的事件实际输出是异步的。好像默认的Buffer Size是128条。
但是现在有一个新问题,希望大家可以帮忙解决。 RollingFileAppender可以设置最大日志文件大小并有一定的备份规则。而DailyFollingFileAppender则可以按Pattern来按某个时间单位为名称命名日志文档的名称。但是如何把而者的优点集合在一起呢?难道要自己重写一个Appender? |
|
返回顶楼 | |
发表时间:2007-01-16
liusu 写道 我这几天看了一些Log4j的API文档和源码,Log4j中有一个AsyncAppender可以做一个桥接的方式将其他的Appender连接起来。而这个AsyncAppender的作用就是是Log4j对所有的LogEvent的事件实际输出是异步的。好像默认的Buffer Size是128条。 关注这个问题,曾经也有这个想法。如果能实现,对于日志内容非常多的程序会有很大用处。
但是现在有一个新问题,希望大家可以帮忙解决。 RollingFileAppender可以设置最大日志文件大小并有一定的备份规则。而DailyFollingFileAppender则可以按Pattern来按某个时间单位为名称命名日志文档的名称。但是如何把而者的优点集合在一起呢?难道要自己重写一个Appender? |
|
返回顶楼 | |
发表时间:2007-01-16
我正打算新写一个Appender继承DailyRollingFileAppender。。。但是对我来说难度不小。。。
|
|
返回顶楼 | |