0
私はミッションクリティカルなアプリケーションを扱っています。私は、ファイルにout
とerr
ストリームを渡すために渡さなければならないJVMの引数を知りたいと思います。ストリームをファイルに書き出すためのJVM引数
slf4j
フレームワークを使用して私のアプリケーションの一部としてlog4j
を持っています。 log4j
でこれが達成できる方法はありますか?
私はミッションクリティカルなアプリケーションを扱っています。私は、ファイルにout
とerr
ストリームを渡すために渡さなければならないJVMの引数を知りたいと思います。ストリームをファイルに書き出すためのJVM引数
slf4j
フレームワークを使用して私のアプリケーションの一部としてlog4j
を持っています。 log4j
でこれが達成できる方法はありますか?
...
//Save default stdout and change stdout to be written to a buffer instead of console
PrintStream defaultOut = System.out;
ByteArrayOutputStream buffer = changeSystemOutputStream();
try {
//Do Stuff that would write to stdout
}
finally{
//Change stdout back to default and write the log messages to file
revertSystemOutputStream(buffer, defaultOut);
}
...
ByteArrayOutputStream changeSystemOutputStream(){
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
System.setOut(new PrintStream(buffer));
return buffer;
}
void revertSystemOutputStream(ByteArrayOutputStream buffer, PrintStream defaultOut) {
System.setOut(defaultOut);
writeToFile(buffer.toString());
}
これはstdoutのみです。 System.setErrを使ってerrに対しても同じことをする –
あなたは(http://stackoverflow.com/questions/15403275/redirect-system-out-println-to-log)[ログインにリダイレクトするSystem.out.printlnを]をチェックするか、[「作りたかったですSystem.out.println() "を使用してlog4jにメッセージを出力する](http://stackoverflow.com/questions/6566960/want-to-make-system-out-println-to-print-message-to-log4j) ? – Roland
'cron 'ではなく、実際にはWeblogic 12cで実行されるものもあります。 –
ミッションクリティカルなアプリケーションをお持ちの方は、なぜ「out」または「err」に書き込むのですか?どこで 'cron'を見ましたか?私は' cron'についてリンクしたり、何も言いませんでしたか?しかし、あなたがWeblogicについて何か書いているように。次はあなたを助けてくれるでしょうか? [WebLogicですべての "コンソール"メッセージをファイルに記録する方法は?](http://stackoverflow.com/questions/8112581/how-to-make-weblogic-log-all-console-message-into-a-file ) – Roland