我想记录数据,而不仅仅是python中的字符串.
我想避免自己实现这个,因为我认为这是以前完成的.
我阅读了Logging HOWTO,但它没有涵盖这个主题
同样在这里:记录食谱
我想支持这些原始数据类型:
记录后我想再次将日志解析回数据...
该logging模块已经支持此功能,如您已链接到的文档中所述:
import logging
import datetime
if __name__ == "__main__":
logging.basicConfig(level=logging.DEBUG)
s = "test"
i = 5
today = datetime.datetime.today()
l = [1, 2, 3, 4, "5"]
d = {1:2, "a": 5}
logging.debug(s)
logging.info(i)
logging.warning(today)
logging.error(l)
logging.fatal(d)
Run Code Online (Sandbox Code Playgroud)
输出:
DEBUG:root:test
INFO:root:5
WARNING:root:2018-03-29 11:54:14.408168
ERROR:root:[1, 2, 3, 4, '5']
CRITICAL:root:{1: 2, 'a': 5}
Run Code Online (Sandbox Code Playgroud)
如果需要混合字符串和对象,请使用格式化功能(%默认情况下使用格式设置):
logging.info("i = %s; s = %s", i, s)
# INFO:root:i = 5; s = test
Run Code Online (Sandbox Code Playgroud)
请注意,日志记录模块很聪明.如果你这样做logging.debug("%s" % , obj),该__str__方法obj将总是被调用,但如果你这样做要么logging.debug(obj)或者logging.debug("%s", obj),它只会如果日志记录级别设置为显示调试输出调用.这节省了一些时间,特别是如果这种方法很昂贵的话.
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |