21

Python アプリ内から syslog にログを記録する方法を調べているところ、次の 2 つの方法があることがわかりました。

  1. syslog.syslog()ルーチンの使用
  2. ロガー モジュールSysLogHandlerの使用

どちらを使用すればよいか本当にわからないため、どちらを使用するのが最適なオプションであるか、それぞれの利点/欠点などを示します。

4

3 に答える 3

11

syslog.syslog()メッセージをローカル syslogd に送信するためにのみ使用できます。SysLogHandler包括的で構成可能なログ サブシステムの一部として使用でき、リモート マシンにログを記録できます。

于 2012-12-27T06:17:10.083 に答える
5

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)

これらのモジュールの両方のログ メッセージは、レベルに応じて「パッケージ」ロガーに送信され、最終的には定義したハンドラーに送信されます。モジュールロガーなどにハンドラーを直接追加することもできます。ここまで読んで、まだ興味がある場合は、ロギングのチュートリアルにジャンプして詳細を確認することをお勧めします。

于 2013-02-09T06:39:04.170 に答える