2

SysLogHandler を動作させることができず、気が狂いそうです。

これは私のコードです:

   import logging
   import logging.handlers

   logger = logging.getLogger()
   sh = logging.handlers.SysLogHandler(address='/dev/log/', facility='local1')
   logger.addHandler(sh)

   logger.setLevel(logging.INFO)
   logger.info('Test')

そして機能しません。syslog.confで出力するように local1 を設定しました/var/log/test.logが、何も表示されませんが、syslog を使用すると期待どおりに動作します。

   import syslog

   syslog.syslog(syslog.LOG_LOCAL1, 'Test from syslog')

私は、uwsgi を通じて提供されるアプリで Debian 6 を使用しています。

手伝って頂けますか?

4

3 に答える 3

2

UNIX ソケット名 (アドレス引数) は、"/" ではなく、ファイル名で終わる必要があります。そのため、通常、Linux では address='/dev/log' である必要があります。

于 2013-02-09T06:03:16.827 に答える
0

文字列として指定しましlocal1たが、モジュールは定数を想定しています。デフォルト値もです。http://docs.python.org/2/library/logging.handlers.html#logging.handlers.SysLogHandlerLOG_USERを参照してください。

于 2013-01-14T10:50:29.017 に答える
-1

logger.setLevel()の代わりにという意味かもしれませんlogger.setLever()

また、なぜあなたは再import logging.handlersですか?

于 2012-07-15T17:40:24.427 に答える