如何在远程Tomcat容器上使用log4j

时间:2015-03-11 16:32:53

标签: java-ee log4j

我有一个简单的J2ee应用程序,我使用log4j记录信息。

这是文件log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="ROOT_APPENDER" class="capacita.apache.log4j.RollingFileAppender">
        <param name="file" value="C:/logs/err_pcs.log"/>
        <param name="MaxFileSize" value="50MB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="capacita.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{dd/MM/yyyy HH:mm:ss} | %X{serverInstance} | %p | %X{sessionId} | %C{1} | %M | %m%n"/>
        </layout>
    </appender>

    <appender name="ERROR_APPENDER" class="capacita.apache.log4j.RollingFileAppender">
        <param name="file" value="C:/logs/err_pcs.log"/>
        <param name="MaxFileSize" value="50MB"/>
        <param name="MaxBackupIndex" value="5"/>
        <layout class="capacita.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{dd/MM/yyyy HH:mm:ss} | %X{serverInstance} | %p | %X{sessionId} | %m%n"/>
        </layout>
    </appender>

    <appender name="LOGIN_APPENDER" class="com.springmvcapp.log.RollingFileAppender">
        <param name="file" value="C:/logs/login-pcs.log"/>
        <rollingPolicy class="com.springmvcapp.log.TimeBasedRollingPolicy">
            <param name="fileNamePattern" value="@log4j.logs@/log-pcs-%d{yyyyMMdd}.log"/>
        </rollingPolicy>
        <layout class="capacita.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss}|%m%n"/>
        </layout>
    </appender>

    <appender name="CONSOLE_APPENDER" class="capacita.apache.log4j.ConsoleAppender">
        <layout class="capacita.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%d{HH:mm:ss}] [%p] [%C{1}].[%M](%L) %m%n"/>
        </layout>
    </appender>

    <logger name="org.springframework">
        <level value="ERROR"/>
        <appender-ref ref="ROOT_APPENDER"/>
    </logger>

    <logger name="ERROR">
        <level value="ERROR"/>
        <appender-ref ref="ERROR_APPENDER"/>
        <!--appender-ref ref="CONSOLE_APPENDER"/-->
    </logger>

    <logger name="ROOT">
        <level value="DEBUG"/>
        <level value="INFO"/>
        <appender-ref ref="ROOT_APPENDER"/>
        <appender-ref ref="CONSOLE_APPENDER"/>
        <!--appender-ref ref="CONSOLE_APPENDER"/ -->
    </logger>

    <logger name="LOGIN">
        <level value="DEBUG"/>
        <appender-ref ref="LOGIN_APPENDER"/>
        <!--appender-ref ref="CONSOLE_APPENDER"/-->
    </logger>

</log4j:configuration>

因此,当我尝试在本地PC上运行此应用程序时,我将检索此文件 C:/ logs,没关系。 现在,当我尝试将此应用程序运行到托管容器中时。 (Linux)我找不到这个文件。在远程容器中启动tomcat之前,我已经删除了C:/,但是我找不到这些文件。 我该如何解决这个问题。

编辑: 在Tomcat的日志中,我有这样的信息:

log4j:INFO Using URL [file:/E:/PROGRA~1/APACHE~1/TOMCAT~1.34/instances/tomcat7.0.34_1405/webapps/spring_mvc/WEB-INF/classes/log4j.xml] for automatic log4j configuration of repository named [default].

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我已插入此代码以创建日志文件

<param name="file" value="${catalina.base}/logs/err_pcs.log"/>