大家好!系统中配置完log4j之后,只有一个类输出日志到文件中, 其他类都没有输出日志! 这个类得特点就是在一个线程中,输出频率比较高!麻烦大家分析分析原因?

解决方案 »

  1.   

    没遇见到过这种情况,基本上都是几个原因:
    1、配置文件漏了;
    2、配置文件有重叠,被另一个JAR包下的log.xml给覆盖了;
    3、Java类中获取Logger的方式错误。
      

  2.   

    <?xml version="1.0" encoding="GB2312"?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
        <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
            </layout>
        </appender>    <appender name="logToFile" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="D:/Ebills6Log/ebills.errors"/>
            <param name="DatePattern" value="&apos;.&apos;yyyy-MM-dd&apos;.log&apos;"/>
            <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %c - %m%n"/> 
    </layout>
        </appender>
        <appender name="logToWorkflowFile" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="D:/Ebills6Log/workflow.errors"/>
            <param name="DatePattern" value="&apos;.&apos;yyyy-MM-dd&apos;.log&apos;"/>
            <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %c - %m%n"/> 
    </layout>
        </appender>
    <appender name="logToAcctFile" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="D:/Ebills6Log/acctInf.log"/>
            <param name="DatePattern" value="&apos;.&apos;yyyy-MM-dd&apos;.log&apos;"/>
            <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %c - %m%n"/> 
    </layout>
        </appender>
     <appender name="logToAccountFile" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="D:/Ebills6Log/AcctInterface.errors"/>
            <param name="DatePattern" value="&apos;.&apos;yyyy-MM-dd&apos;.log&apos;"/>
            <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %c - %m%n"/> 
    </layout>
        </appender>
        <appender name="logRobober" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="File" value="D:/Ebills6Log/Robober.errors"/>
            <param name="DatePattern" value="&apos;.&apos;yyyy-MM-dd&apos;.log&apos;"/>
            <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] [%t] %-5p %c - %m%n"/> 
    </layout>
        </appender>
        <logger name="com.bank.account" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logToAccountFile"/>
        </logger>
    <logger name="com.amerisia.ebills.commons.web.Roboter" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logRobober"/>
        </logger>
        <logger name="com.csii" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logToAccountFile"/>
        </logger>
         <logger name="com.rcb" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logToAccountFile"/>
        </logger>    <logger name="com.amerisia.ebills" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logToFile"/>
        </logger>    <logger name="com.general.wf" additivity="false">
            <level value="debug"/>
            <appender-ref ref="logToWorkflowFile"/>
        </logger>    <root>
            <level value="warn"/>
            <appender-ref ref="stdout"/>
        </root>
    </log4j:configuration>
    是用log4j.xml配置的对于ebills.errors文件只有com.amerisia.ebills.commons.web.Roboter类生效, 其他的类都不生效
      

  3.   

    1、确定你所引用之类中包含log声明。