0

log4j から log4j2 に切り替えて、次の状況を除いてすべてをスムーズに変換しました。私のコードには、テキストをファイルに出力するテスト エンジンがあります。ロギングを処理するために log4j2 を使用しています。テスト名をファイル名として、テストごとに個別のログ ファイルを作成したいと考えています。

たとえば、test1 は test1.log に出力され、test2 は test2.log に出力されます。これは、このコードを使用してlog4jで可能でした...

private Category testOutput = Category.getInstance("ModelTestOutput");
FileAppender outFile = new FileAppender(new PatternLayout("%m%n"), fileName, false);
testOutput.addAppender(outFile);

ただし、これに一致する新しい log4j2 パターンが見つからないようです。

現在、こんな感じで設定しています...

protected Logger testOutput = LogManager.getLogger(); 
//unknown function to tailor the output file name
//something similar to above, like testOutput.addAppender()

および log4j2.xml ファイルで

    <property name="test-file">test.log</property>
    <appender type="File" name="TestLog" fileName="${test-path}${test-file}">
        <layout type="PatternLayout" pattern="%m%n"></layout>
    </appender>
    <logger name="tester.fvt" level="DEBUG" additivity="false">
        <appender-ref ref="TestLog" />
    </logger>
4

1 に答える 1

1

RoutingAppender と ThreadContext マップを使用して、対象のログ ファイル名を動的に変更することができます。FAQ ページに良い例があります: http://logging.apache.org/log4j/2.x/faq.html#separate_log_files

于 2013-10-09T22:51:15.443 に答える