两个进程,共用一个Log4j配置文件,向一个公用的aaa.log里写日志,有时候会出现一个进程可以写入,另外一个进程一直写不进去,从而会导致后边的进程出问题
请问,是否由于进程间互锁造成的,有人遇到过这种情况吗?如何解决的?谢谢!!!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【maxin_1st】截止到2008-06-23 13:59:24的历史汇总数据(不包括此帖):
    发帖数:1                  发帖分:3                  
    结贴数:1                  结贴分:3                  
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  2.   

    可以配置log4j的配置文件,如果冲突就写另外的文件。log.log有人在写,就写log1.log.
    如果非要写一个文件好像没法实现。
      

  3.   


    我们用的是循环记日志的方式,10个日志,log.log 到 log.log.9,只有前一个日志写满的时候,log4j才会写下一个日志的,所以应该不是像你所说的“log.log有人在写,就写log1.log”
    另外,配置log4j配置文件据我所知只能指定类,好像不能按进程来分吧,总不能让我把另外一个进程里的所有类都列出来吧?
      

  4.   


    您好,刚刚确认了一下,确实如你所说了
    冲突后,log4j就会写另外一个文件,不过我们现在的问题是本来期望他按顺序写,log.log、log.log.1、log.log.2、...log.log.9,结果冲突的时候它就会跳着写,比如正在写log.log.1的时候,它可能就会跳到log.log.5,日志连续性不好,很难定位问题
      

  5.   

    可能你的log4j的使用的代码可能有问题。
    应该用单例,保证不能有两个进程同时写一个文件。保证一个时间只有一个进程写文件。
    另外,更不能让别的工程写你的log文件。