Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用log4j2.xml进行tomcat 7内部日志记录_Tomcat_Logging_Log4j2_Tomcat Juli - Fatal编程技术网

使用log4j2.xml进行tomcat 7内部日志记录

使用log4j2.xml进行tomcat 7内部日志记录,tomcat,logging,log4j2,tomcat-juli,Tomcat,Logging,Log4j2,Tomcat Juli,我试图用log4j2配置Tomcat7内部日志记录。我已经遵循了在中提供的答案 我正在使用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 t

我试图用
log4j2
配置Tomcat7内部日志记录。我已经遵循了在中提供的答案

我正在使用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.
以下是我执行的步骤:

  • log4j2.xml
    放入
    $CATALINA_BASE/lib
  • 从“extras”下载
    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.properties
  • 将日志管理器设置为使用
    log4j2-jul
    桥(
    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\u CONFIG=“-Djava.util.LOGGING.CONFIG.file=$CATALINA\u HOME/lib/log4j2.xml”
)添加到
CATALINA.sh
中,但没有成功


请告诉我是否有人可以成功配置它。

我的错误是,我需要在类路径中包含
$CATALINA_BASE/lib
,以便拾取
log4j2.xml

我采取了以下步骤,它对我有效

  • 将以下罐子放入$CATALINA_HOME/lib中
    • log4j 2内核(log4j-core-2.4.1.jar)
    • log4j 2 api(log4j-api-2.4.1.jar)
    • log4j 1.0的log4j 2桥(log4j-1.2-api-2.4.1.jar)
    • 来自tomcat extras的tomcat-juli-adapters.jar
  • 将现有的$CATALINA_HOME/bin/tomcat-juli.jar替换为tomcat extras中的tomcat-juli.jar
  • 删除文件$CATALINA_HOME/conf/logging.properties
  • 将新的log4j2配置文件(log4j2.xml)放入$CATALINA_HOME/lib中

  • 诀窍是按照官方设置log4j1.X,但使用log4j2工件。此外,此解决方案不需要对$CATALINA_HOME/bin/CATALINA.sh或任何其他文件$CATALINA_HOME/bin进行任何更改,请根据您的安装调整以下内容:

    我的Tomcat 8.5.x位于/opt/Tomcat/

    1。将log4j2 jar文件复制到/opt/tomcat/lib/

    • cp/opt/tomcat/lib/
    • cp/opt/tomcat/lib/
    • cp/opt/tomcat/lib/
    (对于Windows,请使用副本)

    2。创建/opt/tomcat/conf/log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="OFF">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} – %m%n"/>
            </Console>
        </Appenders>
        <Loggers>
            <Logger name="*" level="trace">
                <AppenderRef ref="Console"/>
            </Logger>
    
            <Root level="info">
                <appenderRef ref="Console" level="info"/>
            </Root>
        </Loggers>
    </Configuration>
    
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Server built:          Sep 28 2017 10:30:11 UTC
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Server number:         8.5.23.0
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – OS Name:               Linux
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – OS Version:            4.4.0-93-generic
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Architecture:          amd64
    
    4。查看logs in/opt/tomcat/log/catalina.out并注意log42.xml中的LOGJ2前缀

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="OFF">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} – %m%n"/>
            </Console>
        </Appenders>
        <Loggers>
            <Logger name="*" level="trace">
                <AppenderRef ref="Console"/>
            </Logger>
    
            <Root level="info">
                <appenderRef ref="Console" level="info"/>
            </Root>
        </Loggers>
    </Configuration>
    
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Server built:          Sep 28 2017 10:30:11 UTC
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Server number:         8.5.23.0
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – OS Name:               Linux
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – OS Version:            4.4.0-93-generic
    LOGJ2 2017-10-12 08:47:37,797 [INFO  ] VersionLoggerListener – Architecture:          amd64
    

    添加下面提到的罐子对我很有效

    ApacheTomcat/7.0.70

    :

  • /tomcat/lib/log4j-core-2.13.3.jar
  • /tomcat/lib/log4j-api-2.13.3.jar
  • /tomcat/lib/log4j-1.2-api-2.13.3.jar(esapi工作所需 (流量)
  • /tomcat/bin/setenv.sh

    LOG_PARAMS="-Dlog4j.configurationFile=file:///tomcat/conf/log4j2.xml"
    
    /tomcat/conf/log4j2.xml

    
    %d%-5p[%c][%t][%x]%m%n
    
    为什么必须在类路径中添加$CATALINA_BASE/lib?根据文档,$CATALINA_BASE/lib或$CATALINA_BASE/bin中的库应优先于$CATALINA_HOME/lib或$CATALINA_HOME/bin中的库。因此,不需要向类路径添加任何内容,类路径应该根据$CATALINA_BASE的定义正确构建。尽管如此,我对Tomcat8也有同样的问题。我得到了以下错误:无法加载Logmanager“org.apache.logging.log4j.jul.Logmanager”java.lang.ClassNotFoundException:…事实上,不设置类路径,您只需为log4j定义logging_CONFIG变量,如下所示:logging_CONFIG=“-Dlog4j.configurationFile=${CATALINA_BASE}/conf/log4j2.xml”如果您的配置文件是${CATALINA_BASE}/conf/log4j2.xml.Perfect!我将这些步骤与log4j2.xml结合使用:@bmaupin我需要将提到的xml文件放在哪里???@gahse请参阅上面答案中的步骤4@hi@bmaupin谢谢你的文件,它很棒。