从logger中检索输出日志文件值

时间:2015-12-30 09:17:51

标签: python logging

我尝试使用python日志记录模块为文件的某个排序缓存创建一个定时旋转处理程序。

最终我需要知道什么是缓存文件名。 我在记录器中找不到任何属性来检索它。

所以我创建了一种猴子作业来重载记录器以便以后检索。 有谁知道更好的解决方案?

    def srvcacheconfig(**kwargs):
        srv_name = kwargs['server_name']
    #     cache_path = CACHEPATH
    #     ans=dict()
        cache_filename = srv_name+CACHE_EXT
        cache_logger = logging.getLogger(srv_name)
        cache_logger.propagate = False

        #monkey job
        cache_logger.cache_name = cache_filename

        cache_format = logging.Formatter("%(message)s")
    #     cache_handlers = logging.handlers.TimedRotatingFileHandler(cache_filename, when = 'midnight', backupCount = 366)
        cache_handlers = logging.handlers.TimedRotatingFileHandler(cache_filename, when = 'M', interval = 1, backupCount = 200)

        cache_handlers.setFormatter(cache_format)
        cache_logger.addHandler(cache_handlers)

#       consoleHandler = logging.StreamHandler()
#        cache_logger.addHandler(consoleHandler)


        cache_logger.setLevel(logging.DEBUG)
        return cache_logger

非常感谢

1 个答案:

答案 0 :(得分:1)

TimedRotatingFileHandler有一个名为Content的属性,它包含日志文件的名称。但是,这是not documented可能因此更改,恕不另行通知。

您可以从此属性获取日志文件的名称:

baseFilename