python - 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 不同?
解决方案
我在日志记录方面遇到了类似的问题,这是不应该发生的(我搜索了很多答案,但没有找到)
最后,我进去/usr/lib/python3.5/logging/__init__.py
看看。就我而言,当我使用 时basicConfig
,它表示如果处理程序已经存在(logging.root.handlers
),则不会发生任何事情(类似于我相信的情况)。
所以,我只是logging.root.handlers = [ ]
在导入logging
模块后将其设为空,然后它开始记录到文件中。
我不知道它对你来说是否完全一样,但我会试试这个或看看你在上述文件路径中调用的函数(请注意你正在使用的 python 版本)。
希望能帮助到你!
推荐阅读
- c - while(~scanf 在 C 中是什么意思?
- java - 无法在 WebView 中加载网站 - 为什么?
- azure - 如何获取 Azure 存储容器访问策略详细信息
- c# - 在 MVC + SQL 中处理空字段
- linux - 远程系统开发 Eclipse - 从远程 Linux 机器构建、调试和运行
- qt - 在 Qt / QWidgets 应用程序中显示 Gstreamer 视频上方的叠加层
- python-3.x - 如何在 Python 命令行窗口中使用 spark.read.csv() 读取分布式文件?
- fail2ban - Fail2Ban 如何匹配任何字符串
- angular - 如何使用angular4在获取服务调用中传递语言环境
- activiti - Activiti:如何创建自定义事件并监听它?