【发布时间】:2013-11-21 00:34:24
【问题描述】:
我有一些代码应该使用 syslog 记录错误。登录到 syslog 时,我希望脚本名称和 pid 显示在日志本身中。
from syslog import syslog, openlog, LOG_PID
from sys import version_info
openlog(logoption=LOG_PID)
syslog('Some message')
然而,python 2.6 不支持 openlog、logoption 和 LOG_PID,而且我知道这个脚本将在使用 python 2.7 和 python 2.6 的机器上运行。我是这样解决的。
from syslog import syslog
from sys import version_info
(major, minor, dummy1, dummy2, dummy3) = version_info
if major == 2 and minor == 7:
from syslog import openlog, LOG_PID
openlog(logoption=LOG_PID)
syslog('some message')
这样做感觉很奇怪。这是声音吗?无论如何我可以在 2.6 中获得相同的功能吗?
【问题讨论】:
-
你至少在这里问问题。问一个具体的问题要好得多。如果您需要提出多个问题,请将它们作为单独的问题提出。
-
你从哪里得到“python 2.6 不支持 openlog、logoption 和 LOG_PID”的想法?
-
我进入 python documentation for 2.6 并找不到它。此外,当尝试从 syslog 导入 openlog 和 LOG_PID 时,它会引发错误。
-
openlog是您刚刚链接的页面上的第二个函数。它在 2.6 文档中与 2.7 文档中的位置完全相同。你怎么会找不到呢?LOG_PID的文档(两个版本都相同)解释了为什么导入LOG_PID失败:如果平台不支持它(也就是说,它不在<syslog.h>中),Python 也不支持它.
标签: python python-2.7 python-2.6