debian

Python在Debian上的日志管理怎么做

小樊
41
2025-11-23 08:07:04
栏目: 编程语言

在 Debian 上做 Python 日志管理,建议以 Python 内置 logging 为核心,按环境配置日志级别与输出目的地,配合 按大小/时间轮转系统级日志(journald/syslog),必要时引入 结构化日志集中式平台,形成可维护、可观测、可扩展的体系。

一、核心方案与最小示例

# pip install python-json-logger  # 如需 JSON 输出
import logging
from logging.handlers import RotatingFileHandler

LOG_FMT = '%(asctime)s %(levelname)s %(name)s %(funcName)s:%(lineno)d %(process)d %(threadName)s | %(message)s'
DATE_FMT = '%Y-%m-%d %H:%M:%S'

logger = logging.getLogger("myapp")
logger.setLevel(logging.DEBUG)

# 控制台:INFO 及以上
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
ch.setFormatter(logging.Formatter(LOG_FMT, DATE_FMT))
logger.addHandler(ch)

# 滚动文件:DEBUG 及以上,单个 10MB,保留 7 个备份
fh = RotatingFileHandler("/var/log/myapp/app.log", maxBytes=10*1024*1024, backupCount=7, encoding="utf-8")
fh.setLevel(logging.DEBUG)
fh.setFormatter(logging.Formatter(LOG_FMT, DATE_FMT))
logger.addHandler(fh)

# 使用示例
logger.info("服务启动", extra={"host": "app01", "port": 8000})
try:
    1 / 0
except Exception:
    logger.exception("未捕获异常")  # 自动附带 traceback

二、系统级集成与集中化

三、日志轮转与保留策略

四、结构化日志与第三方库

五、生产落地清单

0
看了该问题的人还看了