7

FO ファイルの処理時に FOP が自動的に生成するログ出力 (通常は stderr に送信される) を無効にするにはどうすればよいですか?

log4j.propertiesログレベルを変更してクラスパスにファイルを入れようとしましたが、うまくいきませorg.apache.fopんでした。

4

4 に答える 4

2

fopのドキュメントでヒントを見つけました:http://xmlgraphics.apache.org/fop/0.95/embedding.html#basic-logging「[...]をJakartaCommonsLoggingに切り替えました」。log4j.properties彼らはコモンズロギングを使用しているので、おそらく効果はありません。

これは私の場合は機能します:

<logger name="org.apache.fop">
    <level value="info" />
    <appender-ref ref="logfile" />
    <appender-ref ref="stdout" />
</logger>

検出プロセスがlog4jを検出できるかどうか、commonsロギング構成を確認します( http://commons.apache.org/logging/guide.html#Configuration

于 2011-07-19T13:29:25.950 に答える
1

次のようなことができます。

org.apache.commons.logging.impl.Log4JLogger log = (org.apache.commons.logging.impl.Log4JLogger) LogFactory.getLog("org.apache.fop");

log.getLogger().setLevel(org.apache.log4j.Level.FATAL);
于 2013-01-23T22:37:49.470 に答える
0

FOP はわかりませんが、次のようなコードを使用して、いつでも STDERR を好きな場所にリダイレクトできます。

File errDumpFile = new File("Path\to\a\File")
FileOutputStream fos = new FileOutputStream(errDumpFile);
PrintStream ps = new PrintStream(fos);
System.setErr(ps);

注: ファイルにリダイレクトする必要はありませPrintStreamOutputStream

于 2010-03-31T14:31:16.193 に答える