2012-11-21 13 views
0

我實現的Log4j在我的應用程序,如果我想的日誌消息順序編號1,2,3一樣所以我需要追加到該字符串ConversionPattern在數字順序

log4j.appender.file.layout.ConversionPattern = ? | %-7p | %-30F | %-5L | %-90m | %d %n 
安排日誌消息

字符串在「?」的地方我可以寫什麼,所以我的消息將與序列號。

問候 MAYUR

回答

0

你有兩個選擇:

  • %r是自log4j的開始
  • 您可以使用%d{ISO8601}或您自己的自定義格式可排序的日期的毫秒數。

[編輯]要在數字序列中的日誌信息,你需要編寫自己的PatternLayout。重寫方法createPatternParser()以便能夠使用自定義模式,如%S

PatternParser,覆蓋finalizeConverter()添加自己的PatternConverterc == 'S'

protected 
void finalizeConverter(char c) { 
    if('S' == c) return SequentialConverter.INSTANCE; 
    else return super.finalizeConverter(c); 
} 

SequentialConverter需要有一個靜態計數器。然後,您可以覆蓋format()將計數器添加到日誌消息:

public 
void format(StringBuffer sbuf, LoggingEvent e) { 
    sbuf.append(counter); 
} 
+0

想這一點,但它不工作 –

+0

這對我的作品。如果你想給我更多的信息,我可能會告訴你你做錯了什麼。 –

+0

我想要這樣1)..........日誌消息..... 2)...........日誌消息.... 3)... .........日誌消息.... –