A模块先运行,写到A。log中,运行一会,加载了B组件,组件有自己的log4j配置文件,此时B组件的log 写到b.log中,同时A模块也同时运行,写到a.log中,当B组件执行完成,A模块依然运行可以继续写到a.log中。能否实现?

解决方案 »

  1.   

    你说的模块是指什么,单独的一个功能还是只是其中一个小功能。log4j的设置,是设置整个程序的log的输出等等的信息。你可以指定写到哪个log文件中。log肯定不会写窜。
      

  2.   

    项目中有一个配置叫做classpath。每个项目都有自己的classpath,只要不同项目classpath里面指定得lo4j.properties不是同一个,那么log文件就不会冲突。
      

  3.   

    String path = Utils.getRealPath() + "/WEB-INF/classes/META-INF/log4j.properties";
    Logger rootLogger = new RootLogger(Level.ALL);
    LoggerRepository loggerRepository = new Hierarchy(rootLogger);

    new PropertyConfigurator().doConfigure(path, loggerRepository);
    Logger log2 = loggerRepository.getLogger("rootLogger");
    log2.error("ttt");
    这个可以帮你解决啊~~