01 基础使用
日志级别从低到高分为:DEBUG
< INFO
< WARNING
< ERROR
< CRITICAL
使用前需要设置记录的日志级别,只有大等于该日志级别的日志才会被记录。
例如,设置日志级别为WARNING
,则WARNING
、ERROR
、CRITICAL
三种级别的日志才会被记录。
import logging
# 使用前需要先设置日志级别 这里设置的是DEBUG
logging.basicConfig(level=logging.DEBUG)
logging.debug("这是一个debug消息")
logging.info("这是一个info消息")
logging.warning("这是一个warning消息")
logging.error("这是一个error消息")
logging.critical("这是一个critical消息")
运行这段代码,可以在控制台看到以下输出:
DEBUG:root:这是一个debug消息
INFO:root:这是一个info消息
WARNING:root:这是一个warning消息
ERROR:root:这是一个error消息
CRITICAL:root:这是一个critical消息
02 日志格式化
可以自定义日志的输出格式,参考:
logging.basicConfig(
level=logging.DEBUG,
format="%(asctime)s [%(levelname)s]: %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
03 输出到文件
默认情况下,日志输出到控制台。如果你想把日志输出到文件,可以这样设置:文章来源:https://www.toymoban.com/news/detail-676381.html
logging.basicConfig(
filename='app.log',
level=logging.DEBUG,
format="%(asctime)s [%(levelname)s]: %(message)s"
)
04 手搓一个日志装饰器
手写一个装饰器,该装饰器挂在函数上,可以实现打印函数的输入与输出。
下面是参考代码:文章来源地址https://www.toymoban.com/news/detail-676381.html
import logging
from functools import wraps
# 定义日志级别和格式化
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
def return_log(func):
"""用于输出打印函数的返回值"""
@wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
logging.info(f"func <{func.__name__}> return: {result}")
return result
return wrapper
def args_log(func):
"""用于输出打印函数的传入参数"""
@wraps(func)
def wrapper(*args, **kwargs):
logging.info(f"func <{func.__name__}> args: {args}, kwargs: {kwargs}")
return func(*args, **kwargs)
return wrapper
到了这里,关于python | Logging日志标准库的常见使用方法(手搓日志记录装饰器)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!