我写了一个小小的Python脚本,用于处理夜间转换和音频数据存档。由于在此过程中出现了一些意想不到的问题(不存在的文件,与数据库服务器的连接不可靠等等),我添加了Python自己的日志记录工具来跟踪遇到的任何问题。
问题是,日志文件是在运行脚本的任何地方创建的(例如当前工作目录),所以我有两个日志文件,一个在我的homedir中(在脚本由cron运行时使用)和一个在脚本自己的目录(在我调试时使用)。我更喜欢将日志文件和配置文件保存在与脚本相同的目录中。
我在这里加载记录器的配置:
logging.config.fileConfig(os.path.join(sys.path[0], 'logger.conf'))
...这是我logger.conf
的相关部分:
[handler_fileHandler]
class=FileHandler
level=DEBUG
formatter=fileFormatter
args=('echi_export.log', 'a',)
绝对路径做有效,但我有点不愿意使用它们。
简而言之,使用Python的logger
模块(尤其是FileHandler)配置文件记录的正确方法是什么?一些现实世界的例子就足够了。
答案 0 :(得分:3)
所以,显然我可以在配置文件中使用Python表达式:
[handler_fileHandler]
<snip>
args=(os.path.join(sys.path[0],'echi_export.log'), 'a',)
这会导致在脚本所在的同一目录中创建日志文件。
(os.path.dirname(__file__)
在我的系统上解析为/usr/lib/python2.7/logging/
,这可能是日志记录模块所在的位置。