当前位置:  开发笔记 > 编程语言 > 正文

跨多个文件共享Python记录器

如何解决《跨多个文件共享Python记录器》经验,为你挑选了0个好方法。

我有一个Python应用程序,其文件结构类似于以下内容:

/Project
    file1.py
    file2.py
    file3.py
    ...

该应用程序正在CentOS 6环境中运行,因此正在使用Python 2.6。

我感兴趣的是建立一种通用的日志记录机制,其中每个文件的日志语句都将写入磁盘上的同一日志文件。这些python文件通常是从命令行执行的,彼此之间有些独立。我测试了以下文档中的一个建议(在此处链接):

log = logging.getLogger(__name__)

我发现,所有日志行都将被列为from __main__,而不管log语句来自哪个文件。换句话说,我无法确定给定日志行来自哪个文件。

我希望可以得到一个日志文件,其内容类似于以下内容:

2017-01-17 10:48:47,446 - file1 - DEBUG - this is from file1
2017-01-17 10:48:47,447 - file2 - DEBUG - this is from file2
2017-01-17 10:48:47,447 - fiel3 - DEBUG - this is from file3

在上面,我将执行:

log.debug("this is from file1")

file1.py和其他文件类似的日志行,替换日志声明适当的文字。

我目前正在使用以下设置日志记录:

########################################
# Setup Logging
########################################
LOG_FILENAME = 'app.log'
# Set up a specific logger with our desired output level
log = logging.getLogger('Logger')
log.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# Add the log message handler to the logger
handler = logging.handlers.RotatingFileHandler(
              LOG_FILENAME, maxBytes=200000000, backupCount=5)
handler.setFormatter(formatter)
log.addHandler(handler)
########################################

此设置非常适合从一个python源进行日志记录,但用处不大,因为我现在正尝试从多个python源进行日志记录

我已经阅读了在多个模块中使用Python登录;它有很好的答案,但是由于我项目中文件的独立性,__name__无法按所述使用。

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有