2012-11-26 100 views
0

Im使用Logback從集成框架進行日誌記錄。所有集成從同一個Java VM中運行,並使用一個logback.xml進行配置。它們都在單獨的包中,我已經設置好它們,所有它們都使用滾動文件appender(僅使用簡單的class =「x.y.z」等)登錄到自己的文件。這工作正常。Logback with external packages

但是,所有集成的引用另一個jar文件,這是一個共享庫。我可以爲這個共享庫中的類設置一個appender,但是如果將這些日誌發送到另一個文件,則會使跟蹤非常困難。例如,第一個日誌將顯示在integration_one.txt中,下一個位於shared_lib.txt中,下一個位於integration_one.txt中。

我需要配置logback,以便共享庫日誌最終放到與調用它的集成相同的文件中。

我能想到的唯一方法就是將所有日誌從一個線程開始,在x包中啓動到y文件,但我不知道這個配置是否可以實現。

有沒有人有任何想法?

+0

不幸的是,Logback只是不這樣工作。 jar文件中的類無疑會初始化它們自己的appender,並且通常使用它們的完全限定類名來完成它。 – GreyBeardedGeek

回答

0

不幸的是,Logback無法正常工作。

jar文件中的類無疑會初始化它們自己的appender,並且通常使用它們的完全限定類名來完成它。

控制附加日誌的文件的配置部分使用完全限定的類名將日誌條目定向到相應的文件。

簡而言之,一個類可以將其日誌指向一個或多個appender,但我不知道有任何方式與第三方代碼有相同的類日誌到不同的appender取決於某些外部因素。

如果您已經在jar文件中編寫了類,那麼您可能會根據上下文將它們傳遞給記錄器以供使用,但是我猜測您沒有源代碼或不想修改它。

+0

非常感謝您的回答!我確實有源代碼,不介意修改它,但必須更改庫中的每個日誌引用並將它們傳遞給用戶,這有點痛苦。但是,如果這是唯一的選擇,那麼這就是我要做的。 – user1309663