最近工作需要对,程序运行进行监控,先简单看个例子,方便入门
例子- 简单写入文本中
import logging
logging.basicConfig(level=logging.INFO,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
filename='./train_net.log',
filemode='a')
def ttt():
import time
for i in range(1000):
logging.info('info message')
time.sleep(10)
if __name__ == '__main__':
ttt()
1. logging
的级别设置
日志级别大小关系是:NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
使用规则是,小于设定的级别,不会被输出,只输出大于或者等于的日志。
日志级别 | 什么情况下使用 |
---|---|
DEBUG | 典型地调试程序 |
INFO | 证明程序按预期进行 |
WARNING | 表明发生了一些意外,或者潜在的问题,警告类型 |
ERROR | 严重的问题,程序部分功能已经不使用 |
CRITICAL | 严重错误,表明程序挂了 |
2. format
常用参数
参数名称 | 说明 |
---|---|
%(levelno)s | 打印日志级别的数值 |
%(levelname)s | 打印日志级别的名称 |
%(pathname)s | 打印当前执行程序的路径,其实就是sys.argv[0] |
%(filename)s | 打印当前执行程序名 |
%(funcName)s | 打印日志的当前函数 |
%(lineno)d | 打印日志的当前行号 |
%(asctime)s | 打印日志的时间 |
%(thread)d | 打印线程ID |
%(threadName)s | 打印线程名称 |
%(process)d | 打印进程ID |
%(processName)s | 打印线程名称 |
%(module)s | 打印模块名称 |
%(message)s | 打印日志信息 |
3. logging
还有一些其他的高级用法
这里就不一一介绍,用到的时候先查即可。可以参考官方文档。
声明: 总结学习,有问题或不当之处,可以批评指正哦,谢谢。
参考链接
[1] https://cuiqingcai.com/6080.html
[2] 官方文档,https://docs.python.org/3/library/logging.html?highlight=logging%20threadname#logrecord-attributes