看拉文档,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();
}}
"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();
}}
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?
log4j.additivity.loggerName=false
我后来改成
"log4j.additivity.logger.lt.Log1=false"
还是不生效啊
调用Log1时不仅在控制台打,还会在文件里打
我只想往文件里打啊
我直接在程序里设 log1Logger.setAdditivity(false);是生效的
就是不知属性文件该怎么设置?
实在是faint
但是一般的配置都会有"log4j.logger.loggerName"
注意前缀是不一样的
log4j.additivity.loggerName=false
我试拉是不行的
"log4j.logger.additivity.lt.Log1=false"
试拉也不型,同文档讲的就不一致把
到底该怎么定呢?
安道理,程序里 log1Logger.setAdditivity(false);这样生效的化
那么"log4j.logger.additivity.lt.Log1=false"
应该也是生效的把
可就是不生效