0

axis2 WebサービスでTomcatを実行するLinuxサーバーがあります。

Log4j には以下を使用します: xml 構成ファイル。これは、Web サービスの Java ファイルと同じディレクトリにあります。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <!-- Appenders -->
    <appender name="roll" class="org.apache.log4j.rolling.RollingFileAppender">
        <param name="file" value="~//..//tmp//CookTalesLog.log" />
                <param name="append" value="true" />
                <param name="encoding" value="UTF-8" />
                <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
                        <!-- The file to roll to, this is a fairly intelligent parameter, if the file
                        ends in .gz, it gzips it, based on the date stamp it rolls at that time, 
                        default is yyyy-MM-dd, (rolls at midnight)
                        See: http://logging.apache.org/log4j/companions/extras/apidocs/org/apache/log4j/rolling/TimeBasedRollingPolicy.html -->
                        <param name="FileNamePattern" value="CookTalesLog.%d.log.gz" />
                </rollingPolicy>

                <layout class="org.apache.log4j.PatternLayout">
                        <!-- The log message pattern -->
                        <param name="ConversionPattern" value="%5p %d{ISO8601} [%t][%x] %c - %m%n" />
                </layout>
    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="roll" />
    </root>

</log4j:configuration>

Javaコードで:次の各行を使用しようとしました

private static final Logger sLogObj = Logger.getLogger( ICDBWebService.class );

private static final Log sLogObj = LogFactory.getLog(ICDBWebService.class);

も使用されます:

static
{
    DOMConfigurator.configure( "log4j.xml" );
}

ロギングの場合:

    sLogObj.debug( "Login: email=" + email + " pwd= " + password );

ログファイルが作成されません....

私が間違っていることは何ですか?

4

3 に答える 3

2

二重の「//」が問題になる可能性があります。

Log4Jの内部デバッグ出力を有効にする-Dlog4j.debug=trueには、JVMに渡すか、Tomcatで実行している場合は、export TOMCAT_OPTS="-Dlog4j.debug=trueLog4J内で何が起こっているかを確認します。

于 2012-05-17T07:16:28.397 に答える
0

以下を使用して、Java コードに xml ファイルをロードします。

 DOMConfigurator.configureAndWatch("log4jConfigFile.xml");
 private static final Log log = LogFactory.getLog(ICDBWebService.class);
于 2012-05-17T08:28:35.443 に答える
0

より単純なファイル パスを試しましたか? 現在そこにあるチルダとダブルスラッシュの代わりに、次のようなものを使用してみて/tmp/CookTalesLog.log、それが役立つかどうかを確認してください. ファイル名が適切に展開されていないため、作成できない可能性があります。Tomcat ログに問題を示唆するものはありますか?

于 2012-05-17T07:05:22.803 に答える