Par*_*jee 11 logging tomcat log4j2 tomcat-juli
我正在尝试配置tomcat 7内部日志记录log4j2.我已经跟踪了Tomcat 6中使用log4j2在Logging服务器类中提供的答案.
我使用Tomcat 7.0.54,和log4j-core-2.1.jar,log4j-api-2.1.jar.我已经下载了额外的内容,并完成了以下所有步骤,但是当我启动tomcat时,我收到一个错误:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
Run Code Online (Sandbox Code Playgroud)
这些是我执行的步骤:
log4j2.xml在$CATALINA_BASE/lib tomcat-juli.jar并tomcat-juli-adapters.jar从"额外"log4j-api-2.1.jar,log4j-core-2.1.jar,log4j-jul-2.1.jar,并tomcat-juli-adapters.jar从"额外"进入$CATALINA_HOME/lib.$CATALINA_HOME/bin/tomcat-juli.jar与tomcat-juli.jar从"临时演员".$CATALINA_BASE/conf/logging.propertieslog4j2-julbridge(log4j-jul-2.1.jar)中的管理器.改变catalina.sh,以确保类路径包括bin/tomcat-juli.jar,lib/log4j-jul-2.1.jar,lib/log4j-api-2.1.jar和lib/log4j-core-2.1.jar,以及用来启动Tomcat的命令包括-Djava.util.logging.manager = org.apache.logging.log4j.jul.LogManager`我甚至尝试添加这个(LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_HOME/lib/log4j2.xml")catalina.sh但是没有用.
如果有人能成功配置,请告诉我.
小智 8
我采取了以下步骤,它对我有用.
诀窍是遵循官方的tomcat 7文档来设置log4J 1.X,而是使用log4j2工件.此解决方案也不需要在$ CATALINA_HOME/bin/catalina.sh或任何其他文件$ CATALINA_HOME/bin中进行任何更改
我的错误,我需要$CATALINA_BASE/lib在classpath中包含log4j2.xml以便被拾取.
根据您的安装情况调整以下内容:
\n我的 Tomcat 8.5.x 位于 /opt/tomcat/
\n1.将log4j2 jar文件复制到/opt/tomcat/lib/
\n(对于 Windows 使用副本)
\n2.创建/opt/tomcat/conf/log4j2.xml
\n<?xml version="1.0" encoding="UTF-8"?>\n<Configuration status="OFF">\n <Appenders>\n <Console name="Console" target="SYSTEM_OUT">\n <PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} \xe2\x80\x93 %m%n"/>\n </Console>\n </Appenders>\n <Loggers>\n <Logger name="*" level="trace">\n <AppenderRef ref="Console"/>\n </Logger>\n \n <Root level="info">\n <appenderRef ref="Console" level="info"/>\n </Root>\n </Loggers>\n</Configuration>\nRun Code Online (Sandbox Code Playgroud)\n3. 创建或编辑 /opt/tomcat/bin/setenv.sh 或 /opt/tomcat/bin/setenv.bat
\n如果没有在 setenv.sh/bat 中设置 CLASSPATH,初始 Tomcat 引导加载程序将无法访问类 org.apache.logging.log4j.jul.LogManager 和 log4j2 类。在启动 Tomcat 之前设置 CLASSPATH 不会影响初始 Tomcat 引导加载程序,因为 catalina.sh/bat在运行 setenv.sh/bat 之前取消设置 CLASSPATH
\n#The environment variable CLASSPATH is unset in catalina.sh/catalina.bat\nCLASSPATH=/opt/tomcat/lib/log4j-api-2.9.1.jar:/opt/tomcat/lib/log4j-core-2.9.1.jar:/opt/tomcat/lib/log4j-jul-2.9.1.jar\nJAVA_OPTS=-Dlog4j.configurationFile=/opt/tomcat/conf/log4j2.xml\nLOGGING_MANAGER=-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager\nRun Code Online (Sandbox Code Playgroud)\n4. 查看 /opt/tomcat/log/catalina.out 中的日志并注意 log42.xml 中的 LOGJ2 前缀
\nLOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener \xe2\x80\x93 Server built: Sep 28 2017 10:30:11 UTC\nLOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener \xe2\x80\x93 Server number: 8.5.23.0\nLOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener \xe2\x80\x93 OS Name: Linux\nLOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener \xe2\x80\x93 OS Version: 4.4.0-93-generic\nLOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener \xe2\x80\x93 Architecture: amd64\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
13318 次 |
| 最近记录: |