长春市网站建设_网站建设公司_测试上线_seo优化
2026/1/21 23:48:07 网站建设 项目流程

logging日志模块

logging是python常用的日志模块,logging涉及三个概念:

  • logger可以理解为记者,决定写什么
  • handler可以理解为发布渠道,决定发到哪里
  • formatter可以理解为文章格式,决定排版格式
  • Level可以理解为重要程度,决定哪些日志的要记录

导入语句

import logging
from functools import wraps

获取日志记录器

logger=logging.getLogger(__name__) # 获取记录器
logger.setLevel(logging.DEBUG) # 设置日志级别

添加控制台处理器

handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)

设置日志格式

formatter = logging.Formatter('%(asctime)s - %(name)s - [%(levelname)s]: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

建议demo1

import logging
from functools import wraps
logger=logging.getLogger(__name__) # 获取记录器
logger.setLevel(logging.DEBUG) # 设置日志级别
handler = logging.StreamHandler()
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - [%(levelname)s]: %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
print('hello')
def happy(func):@wraps(func)def wrapper():logger.info("this is a log system")func()return wrapper    @happy
def hi():print('name')hi()
print(hi.__name__) # 输出的是hi

建议demo2

import logging
import logging.configLOGGING_CONFIG = {'version': 1,'disable_existing_loggers': False,'formatters': {'detailed': {'format': '%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s'},'simple': {'format': '%(levelname)s - %(message)s'}},'handlers': {'console': {'class': 'logging.StreamHandler','level': 'INFO','formatter': 'simple','stream': 'ext://sys.stdout'},'file': {'class': 'logging.FileHandler','level': 'DEBUG','formatter': 'detailed','filename': 'app_debug.log','mode': 'a'},'error_file': {'class': 'logging.FileHandler','level': 'WARNING','formatter': 'detailed','filename': 'app_error.log','mode': 'a'}},'loggers': {'': {  # 根日志器'level': 'DEBUG','handlers': ['console', 'file', 'error_file']},'database': {'level': 'INFO','handlers': ['console'],'propagate': False  # 不传递给根日志器}}
}# 使用配置
logging.config.dictConfig(LOGGING_CONFIG)
logger = logging.getLogger(__name__)  # 获取当前模块的日志器

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询