首页 > 解决方案 > Python 日志记录模块 - 没有输出到树莓派上的日志文件,但适用于 Mac OS

问题描述

我为我的脚本设置了一个记录器,它在我的 Mac 上完美运行。但我需要这个程序在我的树莓派上 24/7 全天候运行。但是,当它在那里运行时,由于某些奇怪的原因,日志文件只是保持空白。

这是我设置记录器的方式

import logging
import ...
import ... 

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s:%(name)s:%(message)s')
file_handler = logging.FileHandler(filename='log_file.log')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)

然后通过调用在我的方法中使用logger.debug('[msg here]')

我不知道为什么会这样,在 raspbian/linux 上设置记录器的方法是否与使用 mac os 不同?

标签: pythonloggingraspberry-piraspbian

解决方案


我在日志记录方面遇到了类似的问题,这是不应该发生的(我搜索了很多答案,但没有找到)

最后,我进去/usr/lib/python3.5/logging/__init__.py看看。就我而言,当我使用 时basicConfig,它表示如果处理程序已经存在(logging.root.handlers),则不会发生任何事情(类似于我相信的情况)。

所以,我只是logging.root.handlers = [ ]在导入logging模块后将其设为空,然后它开始记录到文件中。

我不知道它对你来说是否完全一样,但我会试试这个或看看你在上述文件路径中调用的函数(请注意你正在使用的 python 版本)。

希望能帮助到你!


推荐阅读