java log4j记录优先级问题
发布时间:2020-12-15 02:24:30 所属栏目:Java 来源:网络整理
导读:log4j的Level类具有以下构造函数: protected Level(int level,String levelStr,int syslogEquivalent) 我的问题是,何时使用String levelStr参数? 我已经定义了自己的自定义appender,并在其中定义了一个自定义级别,如下所示: public static class CustomLe
log4j的Level类具有以下构造函数:
protected Level(int level,String levelStr,int syslogEquivalent) 我的问题是,何时使用String levelStr参数? public static class CustomLevel extends Level { private static final long serialVersionUID = 1L; public static final Level ALERT = new CustomLevel(FATAL_INT,"ALERT",2); protected CustomLevel(int level,int syslogEquivalent) { super(level,levelStr,syslogEquivalent); } } 在我的appender中,在append方法中我做: Level newLevel = CustomLevel.ALERT; etc. LoggingEvent newLoggingEvent = new LoggingEvent( event.getFQNOfLoggerClass(),event.getLogger(),event.getTimeStamp(),newLevel,event.getMessage(),event.getThreadName(),event.getThrowableInformation(),event.getNDC(),event.getLocationInformation(),event.getProperties()); super.append(newLoggingEvent); 在日志的输出中,当我做custom_Logger.fatal(msg);我可以看到我的消息,但级别是致命的. main FATAL logging.customlog - Send an Error Message to log 我认为它会在我的自定义级别(即主ALERT)中定义为ALERT. 解决方法
您正在初始化级别,但您没有覆盖Level类中的其余方法.因此,当Logger调用CustomeLevel.toLevel(String)来获取级别的名称时,它将其设置为“FATAL”
查看示例 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |