2012-07-15 30 views
1

我無法使SysLogHandler正常工作,這使我瘋了。系統日誌正在工作,但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,但是如果我使用系統日誌它按預期工作:

import syslog 

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

我在Debian 6,在應用投放槽uwsgi。

你能幫我嗎?

+0

你把這段代碼放在哪裏?它應該是你的應用程序要執行的第一個代碼。 – Tisho 2012-07-16 12:05:44

+0

作爲第一件事,@Tisho在'__main__'中調用的函數中。 – gbr 2012-07-16 13:15:57

+0

你的問題解決了嗎? – Tshepang 2014-07-02 11:55:26

回答

0

也許你的意思是logger.setLevel()而不是logger.setLever()

另外,你爲什麼重新編號爲import logging.handlers

+0

是的,這是一個錯字,代碼是正確的。 而我重新導入logging.handlers,因爲沒有我得到一個AttributeError。 – gbr 2012-07-16 08:09:24

1

UNIX套接字名稱(地址參數)應以文件名而不是「/」結尾。所以它通常應該是linux上的address ='/ dev/log'。