[英]How to configure log4j2 with Tomcat 8.5.15
我在 $CATALINA_HOME/lib 下有 log4j2 jars:
導出 JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
在 catalina.properties 中,我有通用的類加載器,即使它已經在 CATALINA_HOME/lib 下,我也嘗試再次添加 log4j-jul-2.10.0.jar,但沒有成功。
common.loader="${catalina.base}/lib","${catalina.base} /lib/.jar","${catalina.home}/lib","${catalina.home}/lib/ .jar","/opt/tomcat/apache-tomcat-8.5.15/lib/log4j-jul-2.10.0.jar"
我已經刪除了 Tomcat 下的 logging.properties 並在路徑中添加了一個新的 log4j2.xml
錯誤信息:
無法加載日志管理器“org.apache.logging.log4j.jul.LogManager”java.lang.ClassNotFoundException:org.apache.logging.log4j.jul.LogManager
知道為什么 LogManager 仍然丟失還是應該使用其他一些 jars 來代替。 在另一條消息中,他們說的是 juli.jar 和 extras,但在他們的情況下,他們有較舊的 Tomcat 版本,6 或 7。
我知道現在回答這個問題有點晚了,但我相信它可以幫助像我一樣努力配置 tomcat 以便它使用 lo4j 的人。 過去 3 天我一直在做類似的事情,我發現 tomcat 網站提供的 extras 文件夾不是我需要的。 但是,您仍然可以使用 maven 獲取它們。 我能夠配置 tomcat,以便它使用提到的 jar 文件( tomcat-extras-juli.jar 和 tomcat-extras-juli-adapters.jar )。 請記住包含 VM 參數 -Dlog4j.debug 以使您的生活更輕松並更快地捕獲錯誤。
Maven 倉庫: https : //mvnrepository.com/artifact/org.apache.tomcat.extras/tomcat-extras-juli-adapters
在我包含了由 tomcat 的存儲庫提供的提到的 jar 之后,我遇到了同樣的問題。 經過快速分析,我發現接口 org.apache.juli.WebAppProperties 未包含在文件 org.apache.catalina.loader.WebappClassLoaderBase 使用的 jar 文件 tomcat-extras-juli.jar 中。 經過更多研究,我意識到 Maven Repo 中包含了 tomcat jar 文件。 我在相同版本的 tomcat(當前為 8.5)下下載了提到的 jar 文件,將這些 jar 插入到我的 tomcat 安裝中,一切都按預期工作。 現在我的 tomcat 版本使用 log4j 而不是 juli。
您只需要將log4j2-api 、 log4j2-core和log4j2-appserver庫添加到 Tomcat 類路徑中,提供 log4j2 配置文件並從安裝中刪除 $CATALINA_BASE/conf/logging.properties 。
這最容易通過以下方式完成:
在 catalina home 中創建一組名為 log4j2/lib 和 log4j2/conf 的目錄。
將log4j2-api-2.xxjar
、 log4j2-core-2.xxjar
和log4j2-appserver-2.xxjar
放在 log4j2/lib 目錄中。
在 log4j2/conf 目錄中創建名為 log4j2-tomcat.xml、log4j2-tomcat.json、log4j2-tomcat.yaml、log4j2-tomcat.yml 或 log4j2-tomcat.properties 的文件。
在 tomcat bin 目錄下創建或修改CLASSPATH=$CATALINA_HOME/log4j2/lib/*:$CATALINA_HOME/log4j2/conf
以包含CLASSPATH=$CATALINA_HOME/log4j2/lib/*:$CATALINA_HOME/log4j2/conf
您可以通過更改環境變量 LOGGING_MANAGER 來強制使用 JUL 框架的應用程序使用 log4j2 格式。 您可以通過添加在setenv.sh文件做到這一點: LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
請記住, org.apache.logging.log4j.jul.LogManager
包含在必須添加到類路徑中的log4j-jul-2.xxjar
橋中。
參考:
https://logging.apache.org/log4j/2.x/log4j-appserver/index.html
log4j2 jars
必須與bootstrap.jar
(tomcat 啟動)和tomcat-juli.jar
(日志記錄)一起加載
這些 jars 存在於CATALINA_HOME/bin
目錄中,負責 tomcat 的初始化,包括日志記錄。
如果是 Windows,在CATALINA_HOME/cataline.bat
中,您將找到以下代碼 -
set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar"
在這里,您應該在類路徑中添加 log4j2 jar,以便在 tomcat 啟動時,這些 jar 就在那里。
在tomcat\\bin\\
文件中創建setenv.bat
並添加到文件中:
set "CLASSPATH=%CLASSPATH%%CATALINA_BASE%\bin;%CATALINA_BASE%\bin\log4j-core-2.10.0.jar;%CATALINA_BASE%\bin\log4j-api-2.10.0.jar;%CATALINA_BASE%\bin\log4j-jul-2.10.0.jar"
復制jar文件
log4j-api-2.10.0.jar
log4j-core-2.10.0.jar
log4j-jul-2.10.0.jar
到文件夾tomcat\\bin\\
在tomcat\\bin
文件夾中創建文件log4j2.xml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.