UNIXアプリケーションは大量のデータをどのように記録する必要がありますか?

UNIXアプリケーションは大量のデータをどのように記録する必要がありますか?

私のアプリケーションが一部のユーザーに対して多くのログを生成しないのではないかと心配しています。

  • ユーザビリティに影響を与えないようにするには、何を考慮する必要がありますか(スクロールサポートなど)。
  • アプリケーションがロギングレベルの設定を照会する標準的な方法はありますか(無効なロガーへの書き込みにリソースが無駄にならないように)。

ベストアンサー1

システムログではなくファイルに書き込むこと以外の優先順位で大量のデータを生成する場合は、システムログではなくファイルにデフォルト設定を書き込むか、少なくともdebugこれらの可能性を提供することをお勧めします。これらのログがデバッグログインの場合、デフォルトではオフになっている必要があり、デバッグログを印刷するように指示するオプション(コマンドラインまたは設定ファイルから)を使用してアプリケーションを呼び出すときにのみ印刷する必要があります。

アプリケーションの目的に応じて多くのログを生成することが明白であれば大丈夫です。

アプリケーション側では、ロギングレベルの構成を確実に照会することはできません。たとえば、一部のシステムでは、リモートでログインすると、設定が別のシステムに存在します。同じシステムでも、root以外のユーザーは、ロギング構成を読み取る権限がない可能性があります。合理的または大量のログを生成するようにアプリケーションを構成できる場合は、その決定はアプリケーションの構成によって異なります。

syslogツールを使用してログを記録する場合は、ログの回転をサポートするために何もする必要はありません。ファイルに書き込む場合は、アプリケーションがそのログファイルを閉じて再度開く方法を提供する必要があります。これにはSIGUSR1またはSIGUSR2を使用し、終了信号として使用しない場合はSIGHUPを使用することもできます(デーモン、つまりターミナルで実行されていないプログラムの場合、SIGHUPは通常「設定の再ロード」を意味します。オープンを含めることができます)))。ログローテーションプログラムは最初にログを別の名前に移動し、次にアプリケーションに新しいログファイルを生成するように指示します。

おすすめ記事