阅读量:0
在Debian系统中管理Python日志,通常可以使用Python标准库中的logging模块。以下是一些基本的配置和使用方法:
基本配置
import logging
# 创建logger
logger = logging.getLogger("my_logger")
logger.setLevel(logging.DEBUG)
# 创建文件处理器
fh = logging.FileHandler("/tmp/myapp.log")
fh.setLevel(logging.DEBUG)
# 创建控制台处理器
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# 创建格式化程序
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
# 将格式化程序添加到处理器
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 将处理器添加到logger
logger.addHandler(fh)
logger.addHandler(ch)
# 记录不同级别的日志消息
logger.debug("这是一条debug级别的日志")
logger.info("这是一条info级别的日志")
logger.warning("这是一条warning级别的日志")
logger.error("这是一条error级别的日志")
logger.critical("这是一条critical级别的日志")
日志轮转
可以使用logging.handlers.RotatingFileHandler来实现日志轮转。例如,按大小滚动日志:
from logging.handlers import RotatingFileHandler
rot_handler = RotatingFileHandler(filename='app.log', maxBytes=10*1024*1024, backupCount=5, encoding='utf-8')
logger.addHandler(rot_handler)
日志格式化
可以自定义日志格式,例如输出JSON格式的日志:
import json
class JsonFormatter(logging.Formatter):
def format(self, record):
return json.dumps({
"timestamp": self.formatTime(record),
"logger": record.name,
"level": record.levelname,
"message": record.msg,
"context": getattr(record, 'ctx', {})
}, ensure_ascii=False)
formatter = JsonFormatter()
rot_handler.setFormatter(formatter)
日志过滤
可以使用过滤器来记录特定级别的日志:
class SensitiveFilter(logging.Filter):
def filter(self, record):
return record.levelno != logging.DEBUG
sensitive_filter = SensitiveFilter()
logger.addFilter(sensitive_filter)
使用第三方库
除了标准库,还可以使用第三方库如loguru来简化日志管理:
from loguru import logger
logger.add("app.log", rotation="10 MB") # 日志文件超过10MB自动轮转
logger.info("这条日志会被写入文件!")
通过以上方法,可以在Debian系统中有效地管理Python日志,确保日志信息的记录、轮转和过滤都符合应用的需求。
以上就是关于“Debian系统中Python日志如何管理”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm