2012-10-09 47 views
2

這對您的傢伙來說很容易!SLF4J:避免完全合格的課程名稱

如何防止SLF4J顯示完全限定的類名(例如com.mycompany.mypackage.MyObject)並僅輸出MyObject?

我一般喜歡這樣的:

1)

private static final Logger LOGGER = LoggerFactory 
     .getLogger(MyObject.class); 

這樣:

2)

private static final Logger LOGGER = LoggerFactory 
     .getLogger("MyObject"); 

這樣,當我重構/重命名爲MyObject到MyThing基準爲我自動更新。

然而.. 1)我得到笨拙輸出:com.mycompany.mypackage.MyObject

我只需要看到的MyObject在日誌中...

可選:如果你知道如何選擇顏色輸出(例如\e[0;33m)基於日誌級別,這將是很好知道。

+0

您是否使用log4j作爲基礎記錄器?你能發佈你的屬性文件嗎? – Luhar

+0

我現在使用「簡單」... – Robottinosino

回答

3

按照APISimpleLogger,你可以試試你的LOGGER實例的org.slf4j.simpleLogger.showShortLogName屬性設置爲true

從API:

org.slf4j.simpleLogger.showShortLogName - 如果你想被包含在輸出消息名稱的 最後一個組件設置爲true。默認 爲false。

+1

太棒了。這就是我需要的。公認!我只知道如何通過CLI設置它(例如'java -Dorg.slf4j.simpleLogger.showShortLogName = true'),有沒有辦法通過編程或通過配置文件來實現?你能否給你的答案增加一個非常簡短的例子,以便後人完成它? – Robottinosino