python 包之 logging 日志处理教程
一、基本方法
-
默认情况下日志打印只显示大于等于 WARNING 级别的日志
-
FATAL:致命错误
-
CRITICAL:特别糟糕的事情,如内存耗尽、磁盘空间为空,一般很少使用
-
ERROR:发生错误时,如IO操作失败或者连接问题
-
WARNING:发生很重要的事件,但是并不是错误时,如用户登录密码错误
-
INFO:处理请求或者状态变化等日常事务
-
DEBUG:调试过程中使用DEBUG等级,如算法中每个循环的中间状态
import logging
logging.debug('It is a debug')
logging.info('It is a info')
logging.warning('It is a warning')
logging.error('It is a Error')
logging.critical('It is a critical')
二、设置日志级别
import logging
logging.basicConfig(level=logging.DEBUG)
logging.debug('Python debug')
三、将信息记录到文件
import logging
logging.basicConfig(filename='logging.text', level=logging.DEBUG)
logging.debug('It is a debug')
logging.info('It is a info')
logging.warning('It is a warning')
四、更改消息格式
-
%(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
-
%(message)s:打印日志信息
import logging
logging.basicConfig(format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.warning('is when this event was logged.')
五、配置日志
-
创建日志记录配置文件并使用该 fileConfig() 功能读取它
-
logging.conf 配置文件:
[loggers]
keys=root,simpleExample
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_simpleExample]
level=DEBUG
handlers=consoleHandler
qualname=simpleExample
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
-
使用
import logging
import logging.config
logging.config.fileConfig('logging.conf')
logger = logging.getLogger('simpleExample')
logging.debug('It is a debug')
logging.info('It is a info')
logging.warning('It is a warning')
logging.error('It is a Error')
logging.critical('It is a critical')
标签:
python包教程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通