Bonky Zhu
If someone is able to show me that what I think or do is not right, I will happily change, for I seek the truth, by which no one was ever truly harmed. It is the person who continues in his self-deception and ignorance who is harmed.

Python logging 模块的简单使用

首先是对输出信息的配置,我个人比较常用的是以下格式:

import logging
logging.basicConfig(filename='train.log',
                    filemode='w',
                    level=logging.DEBUG,
                    format='[%(asctime)s]%(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
)


产生的 train.log 如下:

屏幕快照 2019-10-04 下午2.05.31

如果想修改,主要我们需要修改的是format 部分,format 部分可选参数为:

格式 作用
%(name)s Logger的名字
%(levelname)s 日志级
%(filename)s 调用日志输出函数的模块的文件
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(relativeCreated)d 输出日志信息时的,自Logger创建以来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是“2003-07-16:49:45,896”。逗号后面的是毫秒
%(message)s 用户输出的消息

我们添加信息可以使用以下方法:

logging.debug("debug message")              #告警级别最低,只有在诊断问题时才有兴趣的详细信息。
logging.info("info message")                #告警级别比debug要高,确认事情按预期进行。
logging.warning("warning message")          #告警级别比info要高,该模式是默认的告警级别!预示着一些意想不到的事情发生,或在不久的将来出现一些问题(例如“磁盘空间低”)。该软件仍在正常工作。
logging.error("error message")              #告警级别要比warning要高,由于一个更严重的问题,该软件还不能执行某些功能。
logging.critical("critical message")        #告警级别要比error还要高,严重错误,表明程序本身可能无法继续运行。


如果我们想要嵌入一些数据可以使用Pythonformat

logging.debug(f"训练数据大小:{len(train_data)}") # 这是一个骚技巧,注意到了吗

Share

You may also like...

发表评论