我在
logger
对象上声明并设置日志级别,如下所示:
logger = logging.getLogger(__name__)
loglevel = 'DEBUG' # actually taken from a config in my code
logger.setLevel(logging.getLevelName(loglevel))
这种情况下如何设置日志格式?我尝试了
logger.setFormat
和logger.setFormatter
,它们会抛出属性错误。
我读到的每本指南都谈到
logging.basicConfig(format=FORMAT)
,但我使用的是logger
,而不是直接打电话logging
。
文档中有一个示例,这里。 创建一个处理程序,设置格式化程序,然后将处理程序添加到记录器:
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
console = logging.StreamHandler()
console.setFormatter(logging.Formatter('%(name)-12s: %(message)s'))
logger.addHandler(console)
logger.debug('Hi')
打印
__main__ : Hi
您可以为
basicConfig
实例设置 logger
而不是 logging
模块,如下所示:
logging.basicConfig(format='%(name)s: [%(levelname)s]: %(message)s')
logger = logging.getLogger(__name__)
这使您能够设置记录器实例
logger
并且您可以通过以下方式使用 logger
:logger.<instance-function-of-the-logger-object>
。使用这种方法您将不需要使用 logging.<module-level-funtion>
。