假设有两个类,如何在log4j.properties中配置,使得两个类可以产生各自的log

解决方案 »

  1.   

    配置2个org.apache.log4j.DailyRollingFileAppender 就行了<appender name="LOG_FILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/logs/server.log"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <param name="Append" value="true"/>
    <param name="encoding" value="UTF-8"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern"
                    value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/>
            </layout>        
        </appender>
        <appender name="LOG_FILE_LDAP" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="/logs/grp_ldap_err.log"/>
    <param name="DatePattern" value="'.'yyyy-MM-dd"/>
    <param name="Append" value="true"/>
    <param name="encoding" value="UTF-8"/>
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern"
                    value="[%d{yyyy-MM-dd HH:mm:ss SSS}] %p [%t] %c{1}.%M(%L) | %m%n"/>
            </layout>        
        </appender>
      

  2.   

    这个配在哪里? java程序里面还是另外写个xml?
      

  3.   

    这个配在哪里? java程序里面还是另外写个xml?xml的名字是什么?放在哪里
      

  4.   

    比方说,
    log4j.properties文件中这么配:log4j.rootCategory=INFO, root
    log4j.appender.root=org.apache.log4j.ConsoleAppender
    log4j.appender.root.layout=org.apache.log4j.PatternLayout
    log4j.appender.root.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%nlog4j.category.Class1=INFO, class1
    log4j.appender.class1=org.apache.log4j.FileAppender
    log4j.appender.class1.layout=org.apache.log4j.PatternLayout
    log4j.appender.class1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
    log4j.appender.class1.file=class1.loglog4j.category.Class2=INFO, class2
    log4j.appender.class2=org.apache.log4j.FileAppender
    log4j.appender.class2.layout=org.apache.log4j.PatternLayout
    log4j.appender.class2.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
    log4j.appender.class2.file=class2.logJava程序中,程序
    Logger.getLogger("Class2").info(  "Class2 logging.");
    就只写入到class2.log文件
    Logger.getLogger("Class1").info(  "Class1 logging.");
    就只写入到class1.log文件
      

  5.   

    试了一下 出来
    报红
    Type mismatch: cannot convert from void to Logger
      

  6.   

    package liang.log4jTest;import org.apache.log4j.Logger;public class Test1 { public static Logger log;

    public Test1(){}

    public static void main (String []args){

    log.info("are you  againok");





    }


    static {

    log = Logger.getLogger("Class1").info( "Class1 logging.");


    }

    }
      

  7.   

    改成
    log = Logger.getLogger("Class1");
      

  8.   

    但是出来以后的日志
    没有
    INFO这个标志了
    变成这样了
    2011-07-25 16:21:52,062 - are you  againok
    2011-07-25 16:32:42,656 - are you  againok
      

  9.   

    但是出来以后的日志
    没有
    INFO这个标志了
    变成这样了
    2011-07-25 16:21:52,062 - are you againok
    2011-07-25 16:32:42,656 - are you againok
      

  10.   

    想要INFO标志?

    ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
    改成
    ConversionPattern=[%p] %-22d{dd/MMM/yyyy HH:mm:ss} - %m%n 
    就行了。
      

  11.   

    太感谢了
    怎么学习log4j
    有什么书或者资料推荐吗