簡體   English   中英

混合使用 log4j 1.x 和 log4j 2

[英]Mixing log4j 1.x and log4j 2

我有一個使用 log4j2 編寫的新應用程序,以利用它的一些新功能。 它使用的庫之一有點舊,是用 log4j 1.x 構建的。 我遇到了一個問題,應用程序中的新代碼寫入日志,但舊庫中的代碼沒有寫入日志。 我什至有一個類,它是舊庫中某物的子類,也被舊庫中的代碼調用,並且此代碼也不會寫入日志。 我已將應用程序配置為使用 log4j2 版本 2.0.2,並且在將舊庫作為 maven 依賴項引用時,我明確排除了 log4j。

如何讓舊庫中的代碼登錄到與新代碼相同的文件中?

重寫舊庫應該被認為是最后的選擇

您是否知道log4j2包含log4j-1.2的橋接器? 您可以通過刪除舊的log4j-1.2.17.jar來使用它,並包含這三個jar:

  • log4j的-API 2.x.jar
  • log4j的核心 - 2.x.jar
  • 的log4j-1.2-API 2.x.jar

這將導致應用程序對log4-1.2 API的所有調用都被路由到log4j2實現。 常見問題解答有一個可以澄清事情的圖表 (別忘了從類路徑中刪除舊的log4j-1.2 jar!)

作為對 Remco 正確答案的評論:

您不需要轉換配置文件。 橋接了解您的舊 log4j conf 文件。 例如,我使用了一個非常復雜的 log4j.properties。 奇跡般有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM