在Python中很难捕获环境异常

2024-04-22 11:56:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的代码在特定位置设置日志文件: (Python 2.7.3版)

import os, errno
try:
    CCustomLogger.setup_daemon_logger('TRexServer', "/var/log/trex/trex_daemon_server.log")
except EnvironmentError, e:
        print "caught some exception...!"
        if e.errno == errno.EACCES: # catching permission denied error
            print "Launching user must have sudo privileges in order to run T-Rex daemon."
        exit(1)

但是,当我尝试运行它时,仍然会出现错误并且无法捕获:

Traceback (most recent call last):
  File "trex_daemon_server.py", line 50, in <module>
    handler = logging.FileHandler("/var/log/trex/trex_daemon_server.log")
  File "/usr/lib64/python2.7/logging/__init__.py", line 897, in __init__
    StreamHandler.__init__(self, self._open())
  File "/usr/lib64/python2.7/logging/__init__.py", line 916, in _open
    stream = open(self.baseFilename, self.mode)
IOError: [Errno 13] Permission denied: '/var/log/trex/trex_daemon_server.log'

奇怪的是,即使是some error中的打印也没有打印出来。你知道吗

我在google上搜索了一下,发现这可能是由缩进错误(see here for example)引起的,但我想这不是。。。你知道吗

还有什么问题?你知道吗

谢谢你


Tags: inpyselflogserverinitvarlogging