<root>
  <appender-ref ref="FILE" />
  <appender-ref ref="STDOUT" />
 </root>除了在root中定义的FILE和STDOUT外,其他定义的appender怎么使用,在什么情况下使用?
谢谢高手

解决方案 »

  1.   

    Log4j
    Logger for java 三大概念:logger/appender/layout
    * logger   定义将等级为XXX的日志信息输出的目的地
    * appender 提供记录的介质
    * layout 负责把记入的内容格式化输出级别
    trace < debug < info < warn < error < fatal
    使用方法
    1.添加jar文件
    2.log4j.properties文件放到classpath下
    3.需要使用的类中如下使用
    private static Logger logger = Logger.getLogger(Test.class);
    logger.debug("输出点啥"); * 参照log4j.properties的模板文件(log4j-template.txt) log4j.rootLogger=debug, A1# A1 is set to be a ConsoleAppender which outputs to System.out. 
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A2=org.apache.log4j.FileAppender
    log4j.appender.A2.File=c\:\\log.txt# A1 uses PatternLayout.
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A2.layout=org.apache.log4j.PatternLayout# The conversion pattern uses format specifiers. You might want to
    # change the pattern an watch the output format change.
    log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n
    log4j.appender.A2.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%nlog4j.logger.org.newyibo.p1=error
      

  2.   

    log4j.properties文件模板
            Log4J的配置之简单使它遍及于越来越多的应用中了 
            Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。择其一二使用就够用了。
            关于Log4j的使用,可以参考Log4的j简单应用。log4j.rootLogger=DEBUG, CONSOLE,A1
    log4j.addivity.org.apache=true # 应用于控制台 
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
    log4j.appender.Threshold=DEBUG 
    log4j.appender.CONSOLE.Target=System.out 
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
    #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n #应用于文件 
    log4j.appender.FILE=org.apache.log4j.FileAppender 
    log4j.appender.FILE.File=file.log 
    log4j.appender.FILE.Append=false 
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n# Use this layout for LogFactor 5 analysis # 应用于文件回滚 
    log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender 
    log4j.appender.ROLLING_FILE.Threshold=ERROR 
    log4j.appender.ROLLING_FILE.File=rolling.log 
    log4j.appender.ROLLING_FILE.Append=true 
    log4j.appender.ROLLING_FILE.MaxFileSize=10KB 
    log4j.appender.ROLLING_FILE.MaxBackupIndex=1 
    log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 
    log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n #应用于socket 
    log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender 
    log4j.appender.SOCKET.RemoteHost=localhost 
    log4j.appender.SOCKET.Port=5001 
    log4j.appender.SOCKET.LocationInfo=true# Set up for Log Facter 5 
    log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout 
    log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n # Log Factor 5 Appender 
    log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender 
    log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 # 发送日志给邮件 
    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 
    log4j.appender.MAIL.Threshold=FATAL 
    log4j.appender.MAIL.BufferSize=10 
    [email protected] 
    log4j.appender.MAIL.SMTPHost=www.wusetu.com 
    log4j.appender.MAIL.Subject=Log4J Message 
    [email protected] 
    log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
    log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
      

  3.   

    什么意思?
    你意思是有些日志需要单独打印到别的文件中吧?
    不用配在ROOT里 你在LOG4J中配置好后
    在java类里用就是了 例如:
    protected static Logger ldapLog = Logger.getLogger("ldap_log");
    ldap_log 就是你在log4j中配置的appender