私は、カスタムロギング機能(診断、通知、警告、エラーなど)を作成したいと書いているプログラムがあります。stderrまたはstdoutにメッセージを記録する必要がありますか?
これを行うにはstdout
またはstderr
ストリームを使用する必要がありますか?それは一種の通訳者であり、ユーザはそれを出力してもらうことができます。
編集:フレームワークをログに私を推薦停止してください:(
私は、カスタムロギング機能(診断、通知、警告、エラーなど)を作成したいと書いているプログラムがあります。stderrまたはstdoutにメッセージを記録する必要がありますか?
これを行うにはstdout
またはstderr
ストリームを使用する必要がありますか?それは一種の通訳者であり、ユーザはそれを出力してもらうことができます。
編集:フレームワークをログに私を推薦停止してください:(
正規出力(プログラムを実行しているの実際の結果は)stdout
に行く必要があり、あなたのようなものは、(例えば、診断、予告、警告、エラー)を言及stderr
。
「通常の出力」がない場合は、どちらを選択するかは問題ではないと言います。ログは唯一の出力なので、stdout
に移動する必要があります。あなたはそれがまだstderr
に行くべき "例外的な情報"であると主張することができます。
それは通訳だから、大多数のユーザーが何かを 'stdout'に出力すると思っています。 'stderr'への印刷をサポートしているかもしれませんが、私はそれが自分の葬儀だと思います... – rfw
stdout
に何か書きますか?答えがYes
の場合、誰かが通常のフローと、stdout
からリダイレクトするために使用されたファイルの途中のエラーを区別するのはかなり難しいでしょう。
stdout
を別のプログラムの入力として使用するとどうなりますか?このデバッグ情報を解析できますか?この場合、重大なエラーのみをstderr
に書き込むとよいでしょう。あなたが何か別のものを書く必要があれば、追加のログファイルに書き込むことを検討するかもしれません。
javaなどの言語を使用する場合は、log4jなどの有名なロギングフレームワークを使用してください。 – flash
ロギングの実装に時間を費やす前に、いくつかのロギングライブラリを調べることをお勧めします。あなたが書いている言語を教えてくれたら、私はたくさんの提案があると確信しています。 –
あなたはどんな苦労をしていますか? – CloudyMarble