什么是配置Python的logging.FileHandler的正确方法?

发布于 2021-01-29 16:16:32

我写了一个很小的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
被浏览
155
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    因此,显然我 可以 在配置文件中使用Python表达式:

    [handler_fileHandler]
      <snip>
    args=(os.path.join(sys.path[0],'echi_export.log'), 'a',)
    

    这将导致在脚本所在的目录中创建日志文件。

    os.path.dirname(__file__)解析为/usr/lib/python2.7/logging/在我的系统上,这可能是日志记录模块所在的位置)。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看