【问题标题】:Python logging configuration file with bandersnatch on python 3.5在 python 3.5 上带有 bandersnatch 的 Python 日志记录配置文件
【发布时间】:2018-03-11 01:27:00
【问题描述】:

我正在使用最新的bandersnatch 2.0.0 和 python 3.5 来创建 PyPi 镜像。 Bandersnatch 有一些相当稀疏的文档,但在示例配置文件中,它说:

; Advanced logging configuration. Uncomment and set to the location of a
; python logging format logging config file.
; log-config = /etc/bandersnatch-log.conf

所以我已经准备好 python 日志配置,取消注释上面的行并创建了这个日志配置:

[loggers]
keys=root

[handlers]
keys=logfile

[formatters]
keys=logfileformatter

[logger_root]
level=NOTSET
handlers=logfile

[formatter_logfileformatter]
format=%(asctime)s %(name)-12s: %(levelname)s %(message)s

[handler_logfile]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=logfileformatter
args=('/path/to/bandersnatch.log','a',10485760,5)    

现在 bandersnatch 不再向 stdout 产生任何输出,并且我指定的日志文件已创建,但没有记录任何内容。

我已经为指定的两个日志级别尝试了不同的 NOTSET 和 DEBUG 组合,但是当我运行 bandersnatch 时还没有记录任何内容。

有什么想法吗?例如,我看到的所有其他问题都是编程错误或人们忘记为 [logger_root] 设置日志级别。我想我没有错过任何这些。

【问题讨论】:

    标签: python logging python-3.5


    【解决方案1】:

    可能是我回答得太晚了,但可能会有所帮助... 该问题似乎与根记录器有关,您可以创建第二个记录器,如下所示:

    [loggers]
    keys=root,file
    
    [handlers]
    keys=root,file
    
    [formatters]
    keys=common
    
    [logger_root]
    level=NOTSET
    handlers=root
    
    [logger_file]
    level=INFO
    handlers=file
    propagate=1
    qualname=bandersnatch
    
    [formatter_common]
    format=%(asctime)s %(name)-12s: %(levelname)s %(message)s
    
    [handler_root]
    class=StreamHandler
    level=DEBUG
    formatter=common
    args=(sys.stdout,) 
    
    [handler_file]
    class=handlers.RotatingFileHandler
    level=INFO
    formatter=common
    args=('/path/to/bandersnatch.log','D',1,'UTF-8')
    #will manage one file a day
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2014-06-11
      • 2013-01-02
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多