简体   繁体   中英

log4j:WARN No appenders could be found for logger

i try to use second log file with my default log file in servlet i have this log4j.xml configuration .

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" ERROR="false">


    <appender name="FILE_error" class="org.apache.log4j.RollingFileAppender"> 
    <param name="Threshold" value="DEBUG"/>   
        <param name="maxFileSize" value="10240KB" />
        <param name="maxBackupIndex" value="5" />    
        <param name="File" value="logs/engine.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %t %-5p [%c{1}] %m%n "/>
        </layout>
    </appender>


     <appender name="CONSOLE_error" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <param name="Threshold" value="DEBUG"/>

        <layout class="org.apache.log4j.PatternLayout">           
            <param name="ConversionPattern" value="%d{ISO8601} %t %-5p [%c{1}] %m%n "/>
        </layout>
    </appender>

    <category name="errorLogger" additivity="false">
        <priority value="DEBUG"/>
        <appender-ref ref="CONSOLE_error"/>
        <appender-ref ref="FILE_error"/>
    </category>



    <appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
    <param name="Threshold" value="DEBUG"/>   
        <param name="maxFileSize" value="10240KB" />
        <param name="maxBackupIndex" value="5" />    
        <param name="File" value="logs/error_info.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ISO8601} %t %-5p [%c{1}] %m%n "/>
        </layout>
    </appender>


    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out"/>
        <param name="Threshold" value="DEBUG"/>

        <layout class="org.apache.log4j.PatternLayout">           
            <param name="ConversionPattern" value="%d{ISO8601} %t %-5p [%c{1}] %m%n "/>
        </layout>
    </appender>

    <category name="com.foo" additivity="false">
        <priority value="DEBUG"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </category>

    <category name="org.apache" additivity="false">
        <priority value="DEBUG"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </category>

     <root>
        <priority value="DEBUG"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="CONSOLE_error"/>
        <appender-ref ref="FILE_error"/>
    </root>
</log4j:configuration>

now in the servlet i set the logger like this :

public class PaymentConfirmation extends HttpServlet implements Constants{
    private static final Logger errorLog= Logger.getLogger("errorLogger");

but when running : errorLog.debug("Starting app"); i got :

log4j:WARN No appenders could be found for logger (errorLogger).
log4j:WARN Please initialize the log4j system properly.

log4j and log4j.xml are in class path what do i do wrong here ?

I was also getting the same error. Can you please try running your java program with -Dlog4j.debug java option. It will give some insight into what is failing and you would be able to resolve that then.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM