すぐに私たちが顧客に展開するcmdラインツールがあります。私は、消費しているフレームワークのcmdウィンドウに表示されるStdErrメッセージが厄介で、Log4Jを使用してそのメッセージをログファイルにリダイレクトするのに苦労しています。ここでLog4J:Stderrメッセージをメインログファイルにリダイレクト
は私のlog4j.xmlファイルです:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration debug="false" xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false" />
<param name="maxFileSize" value="500MB" />
<param name="maxBackupIndex" value="5" />
<param name="file" value="test.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="file" />
</root>
</log4j:configuration>
私の周りGoogleで検索していると私は私に似たようなケースで誰を見つける傾けます。
ので、すべては私が使用していないので、私は、JBossやTomcatの設定とそれをリダイレクトカント同じファイルに
File file = new File("error.log");
FileOutputStream fos = new FileOutputStream(file);
PrintStream ps = new PrintStream(fos);
System.setErr(ps);
である私は、次の行を使用して、それをリダイレクトしているが、私はむしろlog4jのでそれをリダイレクトしたいですコンテナ。これはCMDライン上のJARです。
注:STDOUTがCMDウィンドウに移動するのは、それがユーザーのメニューシステムであるためです。