分享

python别再用print了,试试这个模块,方便输出还能记录错误

 星光闪亮图书馆 2019-09-05

现在发现用logging更加方便。

默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET),默认的日志格式为日志级别:Logger名称:用户输出消息。

在脚本开始先写:

import logging 

logger = logging.getLogger()

logger.setLevel(logging.DEBUG) # Log等级总开关

h = logging.StreamHandler()

h.setLevel(logging.INFO) # 输出到console的log等级的开关

formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

h.setFormatter(formatter)

logger.addHandler(h)

说明一下logging.Formatter的格式化串:

format参数中可能用到的格式化串:%(name)s Logger的名字%(levelno)s 数字形式的日志级别%(levelname)s 文本形式的日志级别%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有%(filename)s 调用日志输出函数的模块的文件名%(module)s 调用日志输出函数的模块名%(funcName)s 调用日志输出函数的函数名%(lineno)d 调用日志输出函数的语句所在的代码行%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒%(thread)d 线程ID。可能没有%(threadName)s 线程名。可能没有%(process)d 进程ID。可能没有%(message)s用户输出的消息

以后输出就可以用logging.info()

将显示

python别再用print了,试试这个模块,方便输出还能记录错误

logging.info()显示内容

可以看到显示时间、脚本名称和行数

这样调试将更加方便

通过将日志写入文件,将来分析错误的时候会更加方便

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多