Python 日志记录:脚本从 /etc/rc.local 自动启动时未记录 DEBUG 级别日志
Python Logging: DEBUG level logs not logged when script autostarted from /etc/rc.local
在我的 Raspberry Pi (Raspbian) 上,以下代码 (test.py) 按照预期在日志文件 '/home/pi/test/test.log 中记录 DEBUG 和 INFO 日志消息' 从控制台启动时,但仅在启动时(由 root 用户)从 /etc/rc.local 文件启动时记录 INFO 日志消息。
import logging
logging.basicConfig(filename='/home/pi/test/test.log',level=logging.DEBUG,\
format='%(asctime)s -- %(module)s -- %(levelname)s -- %(message)s')
logging.debug('Debug error')
logging.info('INFO ERROR')
为什么?
您指定的代码块应该可以正常工作并且调试消息应该转到指定的文件
但请记住,对于 python 进程,您只能执行一次 logging.basicConfig
。如果您已经从另一个模块完成了 logging.basicConfig
,或者如果您以其他方式配置了根记录器,您的配置将不会有任何效果
这是来自 help(logging.basicConfig)
的片段
basicConfig(**kwargs)
Do basic configuration for the logging system.
This function does nothing if the root logger already has handlers
configured. It is a convenience method intended for use by simple scripts
to do one-shot configuration of the logging package.
在我的 Raspberry Pi (Raspbian) 上,以下代码 (test.py) 按照预期在日志文件 '/home/pi/test/test.log 中记录 DEBUG 和 INFO 日志消息' 从控制台启动时,但仅在启动时(由 root 用户)从 /etc/rc.local 文件启动时记录 INFO 日志消息。
import logging
logging.basicConfig(filename='/home/pi/test/test.log',level=logging.DEBUG,\
format='%(asctime)s -- %(module)s -- %(levelname)s -- %(message)s')
logging.debug('Debug error')
logging.info('INFO ERROR')
为什么?
您指定的代码块应该可以正常工作并且调试消息应该转到指定的文件
但请记住,对于 python 进程,您只能执行一次 logging.basicConfig
。如果您已经从另一个模块完成了 logging.basicConfig
,或者如果您以其他方式配置了根记录器,您的配置将不会有任何效果
这是来自 help(logging.basicConfig)
basicConfig(**kwargs) Do basic configuration for the logging system.
This function does nothing if the root logger already has handlers configured. It is a convenience method intended for use by simple scripts to do one-shot configuration of the logging package.