log4j日志输出配置

环境:struts-1.2.8+log4j-1.2.17

log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
                  
    <appender name="file_error"
        class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="D:/workspace/struts1Test_error.log" />
        <param name="Threshold" value="error" />
        <param name="Append" value="true"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %l %m %n" />
        </layout>
    </appender> 
                      
    <appender name="file_info"
        class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="D:/workspace/struts1Test_info.log" />
        <param name="Threshold" value="info" />
        <param name="Append" value="true"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %l %m %n" />
        </layout>
    </appender> 
                  
    <logger name="struts_error">
        <level value="error"/>
        <appender-ref ref="file_error"/>
    </logger>
                      
    <logger name="struts_info">
        <level value="info"/>
        <appender-ref ref="file_info"/>
    </logger>
</log4j:configuration>
如果提示不能找到log4j.dtd时,只需将log4j.jar包解压,得到 log4j.dtd,将其放于log4j.xml同一目录里.

logUtil.ava

public static String LOG_ERROR = "struts_error";
public static String LOG_INFO = "struts_info";
                    
public static void writeErrorLog(String message){
    Logger logger = Logger.getLogger(LOG_ERROR);
    logger.error(message);
}
                    
public static void writeInfoLog(String message){
    Logger logger = Logger.getLogger(LOG_INFO);
    logger.info(message);
}
不需要在web.xml里配置任何东西。

需要指出的是LOG优先级从高到低分别是 ERROR、WARN、INFO、DEBUG.

比如java中:

Logger logger = Logger.getLogger(LOG_INFO);
logger.warn(message);
输出warn信息的时候,log4j.xml中的配置:

<appender name="file_info"
    class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="D:/workspace/struts1Test_info.log" />
    <param name="Threshold" value="warn" />
    <param name="Append" value="true"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d %-5p %l %m %n" />
    </layout>
</appender>

<logger name="struts_info">
    <level value="info"/>
    <appender-ref ref="file_info"/>
</logger>

logger节点中的level节点的值应该是:warn,info,debug.如果是error的话,是不会输出信息的。

appender节点中的Threshold值应该是:warn,info,debug.如果是error的话,也是不会输出信息的。

如果有问题,请指正。

以上。



你可能感兴趣的:(log4j)