2012-11-20 91 views
1

log4cxx模式%l將輸出源文件名及其到日誌的路徑,如果源文件位於深度目錄中,並且使用絕對路徑編譯,則會使讀起來不舒服。沒有源文件路徑的log4cxx日誌?

2012-11-20 15:59:14,184 0x7f7ae90e27c0 TRACE fogs.common (/home/jw/fogs/d_common/net/inc/amf3conn.hpp:158) - Entering setCallbackObjBuffer 

有沒有辦法只能輸出amf3conn.hpp:158在日誌中,以縮短日誌行?

回答

2

我不認爲這是可能的開箱即用。根據API docs,您可以使用%l%F,但%F僅丟棄行號並仍打印路徑。

你有兩個可供選擇的選擇:

  • 子類PatternLayout和實現自己的位置轉換的處理,丟棄的路徑和僅使用文件名
  • 或者使用長度修改以設置的最大長度位置,就像%.20l這將導致inc/amf3conn.hpp:158你的情況。如果選擇最長的源文件名的長度,則無論如何都會得到完整的文件名(可能預先包含一部分路徑)