カスタムログ機能(診断、通知、警告、エラーなど)を作成したいプログラムを作成しています。
これを行うには、stdout
またはstderr
ストリームを使用する必要がありますか?これは一種のインタプリタであり、ユーザーは出力を印刷するように要求できます。
編集:ログフレームワークの推奨をやめてください:(
通常の出力(プログラムを実行した実際の結果)はstdout
に表示されます。これは、stderr
に記載されているようなもの(診断、通知、警告、エラーなど)です。
「通常の出力」がない場合は、どちらを選択してもかまいません。ロギングが唯一の出力であると主張することができるので、それはstdout
に行く必要があります。または、stderr
に移動する必要があるのはまだ「例外的な情報」であると主張することもできます。
stdout
に何か他のものを書きますか?答えがYes
の場合、stdout
からのリダイレクトに使用されたファイルの途中で通常のフローとエラーを区別するのは非常に困難です。
stdout
が別のプログラムの入力として使用される場合はどうなりますか?このデバッグ情報を解析できますか?この場合、重大なエラーのみをstderr
に書き込むとよいでしょう。他の何かを書く必要がある場合は、追加のログファイルに書き込むことを検討してください。