Python アプリ内から syslog にログを記録する方法を調べているところ、次の 2 つの方法があることがわかりました。
- syslog.syslog()ルーチンの使用
- ロガー モジュールSysLogHandlerの使用
どちらを使用すればよいか本当にわからないため、どちらを使用するのが最適なオプションであるか、それぞれの利点/欠点などを示します。
Python アプリ内から syslog にログを記録する方法を調べているところ、次の 2 つの方法があることがわかりました。
どちらを使用すればよいか本当にわからないため、どちらを使用するのが最適なオプションであるか、それぞれの利点/欠点などを示します。
syslog.syslog()
メッセージをローカル syslogd に送信するためにのみ使用できます。SysLogHandler
包括的で構成可能なログ サブシステムの一部として使用でき、リモート マシンにログを記録できます。
logging モジュールは、すべてのログ メッセージを潜在的に処理できる、より包括的なソリューションであり、非常に柔軟です。たとえば、ロガーに複数のハンドラーをセットアップし、それぞれを異なるレベルでログに記録するように設定できます。エラーを syslog に送信するための SysLogHandler、ログをデバッグするための FileHandler、および本当に重要なメッセージを ops に電子メールで送信するための SMTPHandler を持つことができます。モジュール内でロガーの階層を定義することもできます。それぞれに独自のレベルがあるため、次のような特定のモジュールからのメッセージを有効/無効にすることができます。
import logging
logger = logging.getLogger('package.stable_module')
logger.setLevel(logging.WARNING)
そして別のモジュールでは:
import logging
logger = logging.getLogger('package.buggy_module')
logger.setLevel(logging.DEBUG)
これらのモジュールの両方のログ メッセージは、レベルに応じて「パッケージ」ロガーに送信され、最終的には定義したハンドラーに送信されます。モジュールロガーなどにハンドラーを直接追加することもできます。ここまで読んで、まだ興味がある場合は、ロギングのチュートリアルにジャンプして詳細を確認することをお勧めします。