请问如何使多个进程同时异步写一个log文件
现有一应用系统包含多个exe,需要将log记录写入同一个log文件中,为了提高效率,希望使用异步方式,即专门有一个进程或线程来进行写操作,请教该如何实现?
问题点数:40、回复次数:5Top
1 楼icuc88(职业特种兵)回复于 2006-06-01 20:01:25 得分 10
需要加锁和解锁,
同时你还需要考虑冲突了应该怎么解决,不要被死锁。Top
2 楼VenusC(清茶)回复于 2006-06-01 23:54:23 得分 0
加锁解锁是必然要的,问题在于异步写的时候,存放待写信息的队列如何放,放在各个exe里,要加上比较复杂的控制,来保证exe之间信息的顺序;放在一个进程里,通讯方式该如何设置,不希望用socket这样的机制,太慢而且耗费资源。Top
3 楼icuc88(职业特种兵)回复于 2006-06-02 00:06:18 得分 15
用MSMQ嘛,这样就可以按照队列来处理了。Top
4 楼VenusC(清茶)回复于 2006-06-02 09:42:31 得分 0
使用MSMQ还需要安装Windows消息队列组件,Windows的默认安装中是没有该组件的。使用MSMQ不利于应用系统的推广。还有没有其它简单的方法?Top
5 楼iamchenxin(小陈00)回复于 2006-06-04 14:16:50 得分 15
还是找一个写专门log的进程做代理吧.直观而且不会对原进程的结构有任何影响.Top




