溫馨提示×

Debian系統中Python日志如何管理

小樊
45
2025-04-10 03:26:57
欄目: 編程語言

在Debian系統中管理Python日志,通??梢允褂肞ython標準庫中的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日志,確保日志信息的記錄、輪轉和過濾都符合應用的需求。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女