Python日志:可以在格式化器中添加模块名称吗
你可以通过模块名称来获取一个日志记录器,方法是这样的:
logging.getLogger(module_name)
我想在每条日志记录中添加 module_name
。有没有办法设置一个 Formatter
对象来添加 module_name
呢?
3 个回答
1
在 logging.basicConfig
这个函数里,你可以设置日志的格式:
logging.basicConfig(format='%(name)s\t%(message)s')
4
当你初始化日志记录器的时候(这个操作只需要在应用程序中做一次),可以试试这个配置。
logging.basicConfig(
filename='var/bpextract.log',
level=logging.INFO,
format='%(asctime)s %(process)-7s %(module)-20s %(message)s',
datefmt='%m/%d/%Y %H:%M:%S'
)
...在你代码的后面部分...
log = logging.getLogger("bpextract")
log.info('###### Starting BPExtract App #####')
18
你在找 %(name)s
这个参数;把它加到你的格式化模式里:
FORMAT = "%(name)s: %(message)s"
logging.basicConfig(format=FORMAT)
或者在创建 Formatter()
的时候:
FORMAT = "%(name)s: %(message)s"
formatter = logging.Formatter(fmt=FORMAT)
可以查看这个 LogRecord
属性参考:
属性名称:
name
格式:%(name)s
描述: 用来记录调用的日志记录器的名称。