logging模块详解
2018-06-22 00:50:54来源:未知 阅读 ()
logging模块简单使用
1 import logging 2 3 # 记录debug级别的日志; 4 logging.debug("this is a debug info") 5 6 # 记录info级别的日志; 7 logging.info("this is a info") 8 9 # 记录警告级别的日志; 10 logging.warn("this is a warn") 11 WARNING:root:this is a warn 12 13 # 记录错误级别的日志; 14 logging.error("this is a error info") 15 ERROR:root:this is a error info 16 17 # 记录严重错误级别的日志; 18 logging.critical("this is a critical info") 19 CRITICAL:root:this is a critical info
总结:默认情况下,logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出),日志格式为:日志级别 : 日志实例的名称 : 日志信息;
- 日志级别
日志级别 | 含义 |
---|---|
DEBUG | 调试信息,只有用户在调试代码时才会用; |
INFO | 确保代码按照预期正常运行; |
WARNING | 表明不久的将来会发生问题,软件还是在正常工作; |
ERROR | 由于更严重的问题,软件已不能执行一些功能了; |
CRITICAL | 严重错误,表明软件已不能继续运行了; |
其他重要的概念
Logger 记录器
|
创建方法:
1 logger = logging.getLogger("logger_name")
增加处理器Handler:
# 设置日志级别为ERROR,即只有级别>=ERROR的日志才会输出; logger.setLevel(logging.ERROR) # 为logger实例增加一个处理器; logger.addHandler(handler_name) # 为logger实例删除一个处理器 logger.removeHandler(handler_name)
Handler 处理器
将(记录器产生的)日志记录发送至合适的目的地。
Filter 过滤器
提供了更好的粒度控制,它可以决定输出哪些日志记录。
Formatter 格式化器
指明了最终输出中日志记录的布局。
除了加时间,还可以自定义一大堆格式,下表就是所有支持的格式
%(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 | 用户输出的消息 |
日志同时输出到屏幕和文件
如果想同时把log打印在屏幕和文件日志里,就需要了解一点复杂的知识 了
Python 使用logging模块记录日志涉及四个主要类,使用官方文档中的概括最为合适:
- logger提供了应用程序可以直接使用的接口;
- handler将(logger创建的)日志记录发送到合适的目的输出;
- filter提供了细度设备来决定输出哪条日志记录;
- formatter决定日志记录的最终输出格式。
他们之间的关系是这样的
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:模块
- python3 enum模块的应用 2019-08-13
- 利用python自动生成verilog模块例化模板 2019-08-13
- Django模版中加载静态文件配置详解 2019-07-24
- Python random模块(以后用到一个再更新一个) 2019-07-24
- xadmin进行全局配置(修改模块名为中文以及其他自定义的操作 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash