看拉文档,additivity是在定义Logger时定义,那么请看我的配置关键一句是
"log4j.logger.lt.Log1.additivity=false"
Log1是自己定义的Logger
其他配置都生效拉,就是这句没有.我就是不知道additivity该放在哪里定义
网上找不到相关的例子
哪位大虾能够指导一下呢??#configure root logger
log4j.rootLogger=INFO,console
#define appender
log4j.appender.console=org.apache.log4j.ConsoleAppender
#define LAYOUTS
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
#define PatternLayout
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss}  - %m%n
#configure Log1 logger
log4j.logger.lt.Log1=WARN,R
log4j.logger.lt.Log1.additivity=false
#define appender
log4j.appender.R=org.apache.log4j.FileAppender
log4j.appender.R.file=Log1Log.txt#define LAYOUTS
log4j.appender.R.layout=org.apache.log4j.SimpleLayout
#define PatternLayout
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss}  - %m%n
不妨把我的测试类也贴出来把,很简单的
package lt;import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;public class Log1 {
      
   static 
   {
   System.out.println(System.getProperty("user.dir"));
   PropertyConfigurator.configure("LogCfg.properties");
   }
       
   static Logger rootLogger = Logger.getLogger("free");
   static Logger log1Logger = Logger.getLogger(Log1.class.getName());
   public static void testRootLogger()
   {
      rootLogger.debug("rootLogger debug");
      rootLogger.info("rootLogger info");
      rootLogger.warn("rootLogger warn");
      rootLogger.error("rootLogger error");
      rootLogger.fatal("rootLogger fatal");
   }
   
   
   public static void testLog1Logger()
   {
   log1Logger.debug("log1Logger debug");
      log1Logger.info("log1Logger info");
      log1Logger.warn("log1Logger warn");
      log1Logger.error("log1Logger error");
      log1Logger.fatal("log1Logger fatal");
   }
   public static void main(String[] args)
   {
   testRootLogger();
   testLog1Logger();
   }}

解决方案 »

  1.   

    log4j.rootLogger=ERROR,null
    log4j.appender.null=com.zcjy.framework.common.log.NullAppender
    log4j.logger.debugging=DEBUG,A0
    log4j.appender.A0=org.apache.log4j.RollingFileAppender
    log4j.appender.A0.File=debugging.log
    log4j.appender.A0.MaxFileSize=10MB
    log4j.appender.A0.MaxBackupIndex=10
    log4j.appender.A0.layout=org.apache.log4j.PatternLayout
    log4j.appender.A0.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} --[%r]-- [%t] *-- %m%n
    log4j.logger.system=DEBUG,D1
    log4j.appender.D1=com.zcjy.framework.common.log.DbAppender
    log4j.appender.D1.bufferSize=1
    log4j.logger.operation=DEBUG,D2
    log4j.appender.D2=com.zcjy.framework.common.log.DbAppender
    log4j.appender.D2.bufferSize=1
    log4j.logger.login=DEBUG,D3
    log4j.appender.D3=com.zcjy.framework.common.log.DbAppender
    log4j.appender.D3.bufferSize=1ok?
      

  2.   

    不是这个,是additivity这是有些文档上写的,但是为什么我的就不生效的呢
    log4j.additivity.loggerName=false
    我后来改成
    "log4j.additivity.logger.lt.Log1=false"
    还是不生效啊
    调用Log1时不仅在控制台打,还会在文件里打
    我只想往文件里打啊
      

  3.   

    现在问题是这样的
    我直接在程序里设   log1Logger.setAdditivity(false);是生效的
    就是不知属性文件该怎么设置?
    实在是faint
      

  4.   

    文档上写的是log4j.additivity.loggerName=false
    但是一般的配置都会有"log4j.logger.loggerName"
    注意前缀是不一样的
    log4j.additivity.loggerName=false
    我试拉是不行的
    "log4j.logger.additivity.lt.Log1=false"
    试拉也不型,同文档讲的就不一致把
    到底该怎么定呢?
    安道理,程序里 log1Logger.setAdditivity(false);这样生效的化
    那么"log4j.logger.additivity.lt.Log1=false"
    应该也是生效的把
    可就是不生效