2011-06-09 84 views
1

我有以下的自定义日志记录级别log4j的自定义日志级别和属性文件

public class SAMLLoggingLevel extends Level{ 

public static final String SAMLLOGGING_LEVEL = "SAMLLOGGING"; 
public static final Level SAML_EXCEPTION_LOGGING = new SAMLLoggingLevel(FATAL_INT + 1, SAMLLOGGING_LEVEL, 7); 
public static final Level SAML_DEBUG_LOGGING = new SAMLLoggingLevel(DEBUG_INT+1, SAMLLOGGING_LEVEL, 7); 
public static final Level SAML_ERROR_LOGGING = new SAMLLoggingLevel(ERROR_INT+1, SAMLLOGGING_LEVEL, 7); 

protected SAMLLoggingLevel(int level, String levelStr, int syslogEquivalent) { 
    super(level, levelStr, syslogEquivalent); 
} 
} 

我尝试使用以下

public static Logger logger = Logger.getLogger(xyz.class); 

logger.log(SAMLLoggingLevel.SAML_DEBUG_LOGGING, "logger SAML_DEBUG_LOGGING"); 
logger.log(SAMLLoggingLevel.SAML_ERROR_LOGGING, "logger SAML_ERROR_LOGGING"); 
logger.log(SAMLLoggingLevel.SAML_EXCEPTION_LOGGING, "logger SAML_EXCEPTION_LOGGING"); 

我log4j.properteis文件看起来像这样

log4j.logger.com.xyz=SAML_DEBUG_LOGGING, SAMLLoggingLevel 
log4j.appender.SAMLLoggingLevel=org.apache.log4j.RollingFileAppender 
log4j.appender.SAMLLoggingLevel.File=/SAML.log 
log4j.appender.SAMLLoggingLevel.layout=org.apache.log4j.PatternLayout 
log4j.appender.SAMLLoggingLevel.layout.ConversionPattern=%d{MMM dd yyyy HH:mm:ss,SSS zzz} %5p %c{1}:%L - %m%n 
登录

我得到了com.xyz中所有类的所有debub消息。我想从

log4j.logger.com.xyz=SAML_DEBUG_LOGGING, SAMLLoggingLevel 

仅限制到使用logger.log记录的一次(SAMLLoggingLevel ....)

回答

1

更改您的代码

log4j.logger.com.xyz=SAML_DEBUG_LOGGING#com.yourpackagename.SAMLLoggingLevel, SAMLLoggingLevel 
+0

欢迎StackOverflow上。请查看如何使用Markdown格式(编辑框旁边有一个问号;点击它可以提供基本信息) – marko 2012-12-20 13:30:00