我不能让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中将{1}中的local1设置为输出,并且没有任何内容出现,但是如果我使用syslog它正在按预期工作:
/var/log/test.log
我在Debian 6上,在一个通过uwsgi服务的应用程序中。
你能帮助我吗?
答案 0 :(得分:2)
UNIX套接字名称(地址参数)应以文件名结尾,而不是“/”。所以它通常应该是linux上的address ='/ dev / log'。
答案 1 :(得分:0)
您提供了local1
作为字符串,但模块需要一个常量。即使默认值为LOG_USER
,也请参阅http://docs.python.org/2/library/logging.handlers.html#logging.handlers.SysLogHandler
答案 2 :(得分:-1)
也许您的意思是logger.setLevel()
而不是logger.setLever()
。
另外,你为什么要重新import logging.handlers
?