现有两个log4j配置log4j-a.properties,log4j-b.properties;两个配置的内容不同,写入的文件也不同。 有如下一段code loadConfig(log4j-a.properties)   
part 1  
loadConfig(log4j-b.properties)   
part 2  
part 3  现在要使part 1,part3的log按照log4j-a.properties去写,part2的log按照log4j-b.properties去写 
有什么办法可以实现吗? loadConfig这里都可以显示的用api去读properties文件 

解决方案 »

  1.   

    为什么要建两个properties? 
      

  2.   

    因为不同的log要导入不同的文件,而且log的格式也不一样。
      

  3.   

    那也不用建两个properties ,我给你个示例看看是不是这样的需求 :)------log4j.properties ---------
    log4j.logger.Test1=info,t1
    log4j.appender.t1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.t1.File=d:\\T1.log
    log4j.appender.t1.DatePattern='.'yyyy-MM-dd
    log4j.appender.t1.layout=org.apache.log4j.PatternLayout
    log4j.appender.t1.layout.ConversionPattern=%p,%t,%l,%d{ISO8601}, - ,%m%n
    log4j.logger.Test2=info,t2
    log4j.appender.t2=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.t2.File=d:\\T2.log
    log4j.appender.t2.DatePattern='.'yyyy-MM-dd
    log4j.appender.t2.layout=org.apache.log4j.PatternLayout
    log4j.appender.t2.layout.ConversionPattern=%p,%d{ISO8601}, - ,%m%n
    Logger logger1 = Logger.getLogger("Test1");
    Logger logger2 = Logger.getLogger("Test2");logger1.info("part 1");
    logger1.info("part 3");
    logger2.info("part 2");
      

  4.   


    <appender name="log111" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="logfile111.log"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%t]...."/>
    </layout>
    </appender>

    <appender name="log222" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="logfile222.log"/>
    <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p [%t]...."/>
    </layout>
    </appender> <logger name="com.jathon.pack1111" additivity="false">
    <level value="debug"/>
    <appender-ref ref="log111"/>
    </logger>

    <logger name="com.jathon.pack222" additivity="false">
    <level value="INFO"/>
    <appender-ref ref="log222" />
    </logger>
    如果是根据包不同来区分写入哪个log文件,只要如上配置就可以。
    如果其他区分方式,那就在需要写log的类中Log log = LogFactory.getLog("com.jathon.pack222")
      

  5.   

    虽然不是完全match,但是似乎曲线救国也可以一试,谢谢勒~
      

  6.   

    其实完全可以自己实现个日志管理器;而实现方法最主要的就是如何在JVM里的堆栈里获取自己的日志在类里的相关信息(类名、方法名、行数...)了...