1

我编写了一个小型 Python 脚本,用于处理夜间转换和音频数据存档。由于在此过程中出现了一些意想不到的问题(不存在的文件、与数据库服务器的不可靠连接等等......),我添加了 Python 自己的日志记录工具来跟踪任何遇到的问题。

问题是,无论从哪里运行脚本(例如当前工作目录)都会创建日志文件,所以我有两个日志文件,一个在我的主目录中(当脚本由 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)配置文件日志记录的正确方法是什么?一些现实世界的例子就足够了。

4

1 回答 1

5

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

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

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

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

于 2012-03-01T13:32:27.680 回答