2017-01-16 4 views
2

すぐに私たちが顧客に展開する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ウィンドウに移動するのは、それがユーザーのメニューシステムであるためです。

答えて

1

私はここにこの質問を見つけ、受け入れ答えは、私は必要なものです: log4j redirect stdout to DailyRollingFileAppender

は、私が実際に私がしようとしている必要があるときにXML設定でそれを修正する方法を把握しようとしていたが判明System.setErr()でstdErrをリダイレクトしてコードを修正してください。

関連する問題