首页 > 解决方案 > 如何以编程方式设置格式化程序?

问题描述

我正在尝试格式化我的记录器,为此我在设置生活中定义了一个格式化程序。但是我无法弄清楚如何将其设置为记录器的处理程序的格式化程序:

def mylogger(name):
    logger = logging.getLogger(name)
    handler = RotatingFileHandler(logger_path, 'w')
    handler.setFormatter(?????)
    logger.addHandler(handler)
    return logger

注意我需要以编程方式执行此操作。我无法在设置文件中声明处理程序,因为RotatingFileHandler可能需要传递一些额外的参数。

所以问题是:handler.setFormatter(?????)如何获取我在设置文件中定义的格式化程序(例如,按名称,如何检索记录器)?

标签: djangologgingformatterdjango-1.8

解决方案


你可以这样做:

handler = RotatingFileHandler(logger_path, 'w')
formatter = logging.Formatter('%(asctime)-12s [%(levelname)s] %(message)s')  
handler.setFormatter(formatter)

文档可以在这里找到:formatter, setFormatter


推荐阅读