我尝试使用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
非常感谢
答案 0 :(得分:1)
TimedRotatingFileHandler
有一个名为Content
的属性,它包含日志文件的名称。但是,这是not documented,可能因此更改,恕不另行通知。
您可以从此属性获取日志文件的名称:
baseFilename