关于消息的问题
找不到记录器“X”的处理程序
来自 Python 的logging
模块在 SO 上似乎很常见,但我还没有找到一个可以解决我的情况的。
我的应用程序只有在作为守护程序运行时才会出现这个问题,所以我假设我没有在那里正确设置一些东西。我在 Python 2.7 中使用python-daemon包。
我的__init__.py
文件使用以下函数初始化记录器:
def init_logger(logger_name, log_file):
'''
Returns: (Logger, [LoggerFH])
'''
logger = logging.getLogger(logger_name)
ch = logging.StreamHandler()
ch.setLevel(level=logging.DEBUG)
fh = logging.FileHandler(log_file)
fh.setLevel(level=logging.DEBUG)
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
fh.setFormatter(formatter)
logger.addHandler(fh)
return logger, [fh, ch]
该函数的调用方式如下:
logger, logger_fhs = init_logger('logger_name', 'logger_file_path')
然后守护进程初始化如下:
context = daemon.DaemonContext(
files_preserve=map(operator.attrgetter('stream'), logger_fhs)
)
with context:
bombs_away(args) # This application does not actually launch any bombs :)
我错过了什么?我还可以检查什么来找到消息的来源?