import logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s', datefmt='%H:%M:%S')
logging.info('hello')
logging.warning('\n new hello')
11:15:01 INFO hello
11:16:49 WARNING
new hello
由于日志很拥挤,我想在asctime
和levelname
之前显式插入一个新行。不修改format
这可能吗?
我查看了一下logging
模块,然后在谷歌上搜索了一下,找不到可行的方法。
我有两个解决方案,第一个很简单,但输出不是很干净。第二种方法将产生您想要的确切输出,但它稍微复杂一些。
方法1
要生成空行,只需用新行记录空字符串:
输出将有一个空的信息行,它不是很干净:
方法2
在这个方法中,我创建了两个不同的处理程序。我经常使用的
console_handler
。当需要新行时,我切换到第二个处理程序blank_handler
。输出是您想要看到的:
讨论
logging
并用logger
替换它们来更改代码。您必须注意只替换相关部分,并保留诸如logging.DEBUG
这样的文本。使用在不同时间使用不同格式字符串的自定义
Formatter
。您不能使用basicConfig()
来完成这项工作-您必须使用logging
API的其他部分。或者,可以调用
super
方法,然后修改字符串以在返回新行之前插入新行(例如,如果它依赖于行长度)。你不能在第一次打招呼后加上新行吗?i、 e
它将输出
相关问题 更多 >
编程相关推荐