Level類的log4j的有以下構造函數:java的log4j的日誌記錄優先問題
protected Level(int level, String levelStr,int syslogEquivalent)
我的問題是,當使用String levelStr
參數?
我已經定義了自己的自定義附加目的地,並在其中我已經定義了一個自定義Level
如下:
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, String levelStr, 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);
我可以看到我的消息,但水平是FATAL
。
main FATAL logging.customlog - Send an Error Message to log
我認爲這將是ALERT
在我的自定義級別(即main ALERT
)定義。
我在這裏做錯了什麼?我不應該在輸出日誌中看到ALERT
?
如果不是那麼什麼時候使用leveStr
?
什麼FATAL_INT的價值爲例級別的名稱?我猜想它可能與致命日誌級別已經使用的不一樣。 – steinar 2011-03-20 14:16:05
@steinar:'FATAL_INT'是'org.apache.log4j.Priority.FATAL_INT' – Cratylus 2011-03-20 15:28:57