Logging模块总结 2018/5/30
Posted ggggggzx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Logging模块总结 2018/5/30相关的知识,希望对你有一定的参考价值。
日志的级别
Level | 用处 | 数字级别 |
---|---|---|
DEBUG | 详细的信息,在调试过程中用于诊断错误 | 10 |
INFO | 用于确认事件正在运行 | 20 |
WARNING | 意外发生时予以提醒,或者预测一些未来可能发生的一些问题(比如:磁盘空间低等) | 30 |
ERROR | 当一些错误发生,导致软件无法正常完成一些功能时 | 40 |
CRITICAL | 严重的错误发生,表明程序本身无法继续运行 | 50 |
如果不设置日志的级别,电脑则会选择使用默认的级别进行过滤信息:
全局默认级别:WARNING;
屏幕显示级别:DEBUG;
文件显示级别:WARNING。
定义日志的格式
%(name)s | Logger的名字 |
---|---|
%(levelno)s | 数字形式的日志级别 |
%(levelname)s | 文本形式的日志级别 |
%(pathname)s | 调用日志输出函数的模块的完整路径名,可能没有 |
%(filename)s | 调用日志输出函数的模块的文件名 |
%(module)s | 调用日志输出函数的模块名 |
filename&module区别 | 文件名有.py,模块名则没有 |
%(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 | 用户输出的消息 |
最简单的方法:
- import logging模块;
写logging.语句;
运行结果:
将日志写到文件中:
和最简单的方式不同的地方就是:在写入过程中加入了logging.basicConfig语句(在这里面可以添加各种日志的格式,比如,写入文件,路径名,时间等等)
创建记录日志的文件,命名为example.log;
import logging模块,写基本配置.basicConfig;
{{LOGGING-03.gif(uploading...)}}只有当logging的级别高于基本配置里面的级别的时候,语句才能被写入到日志当中;
如果在basicConfig里面没有指明level级别,那默认级别就是WARNING;
同时在屏幕和文件中写入日志:
- Logger部分:
1.1 生成logger对象:LOG = getLogger(‘给日志起的名字~‘)
1.2 指定日志级别:LOG.setLevel(logging.DEBUG/INFO/WARNING/...)(即为全局级别,可以不设置)
1.3 增加/删除指定的Handler:Logger.addHandler(hdlr),removeHandler(hdlr)
------------------- Handler部分:(本次仅记录logging.StreamHandler,logging.FileHandler)
2.1 生成Handler对象:
向屏幕输出 screen_han = logging.StreamHandler()
设置Handler级别:screen_han.setLevel(logging.DEBUG/INFO/WARNING/...)
向文件输出 file_han = logging.FileHandler();
设置Handler级别:file_han.setLevel(logging.DEBUG/INFO/WARNING/...)
----------------- formatter组件
3.1 设置formatter:formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s ......‘)(在其中添加日志格式,获取想要的相应的内容)
3.2 添加formatter组件:需要加配置的变量名.setFormatter(设置的formatter名字)
以上是关于Logging模块总结 2018/5/30的主要内容,如果未能解决你的问题,请参考以下文章