最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python記錄日志報警詳解

 更新時間:2025年07月18日 09:09:24   作者:Tipriest_  
Python日志報警方案包括簡單日志、郵件(需SMTP)、Slack(需requests)、桌面彈窗(需plyer),推薦基礎(chǔ)方案用于本地開發(fā),多通道組合提升可靠性,異步處理避免阻塞,敏感信息加密存儲,根據(jù)場景選擇,建議至少實現(xiàn)日志告警+主動通知方式

在 Python 標(biāo)準(zhǔn)庫中,可以列舉出如下常見場景日志報警解決方案:

方案 1:簡單日志告警(推薦基礎(chǔ)方案)

import logging

def send_alert(message):
    logging.error(f"ALERT: {message}")
    # 可擴(kuò)展:同時寫入文件/發(fā)送到日志服務(wù)器

# 配置日志格式
logging.basicConfig(
    level=logging.ERROR,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

? 無需額外安裝包,適合本地開發(fā)或簡單場景

方案 2:郵件告警(需 SMTP 服務(wù))

import smtplib
from email.mime.text import MIMEText
from os import getenv

def send_alert(message):
    msg = MIMEText(message)
    msg["Subject"] = "API Key 異常告警"
    msg["From"] = getenv("ALERT_EMAIL_FROM")  # 從.env讀取
    msg["To"] = getenv("ALERT_EMAIL_TO")

    with smtplib.SMTP_SSL(getenv("SMTP_SERVER"), 465) as server:
        server.login(getenv("SMTP_USER"), getenv("SMTP_PASSWORD"))
        server.send_message(msg)

依賴包:Python 內(nèi)置 smtplib + email

需在 .env 中配置:

SMTP_SERVER=smtp.example.com
SMTP_USER=alert@example.com
SMTP_PASSWORD=your_email_password
ALERT_EMAIL_FROM=alert@example.com
ALERT_EMAIL_TO=devops@example.com

方案 3:Slack 通知(推薦團(tuán)隊協(xié)作)

import requests
from os import getenv

def send_alert(message):
    webhook_url = getenv("SLACK_WEBHOOK_URL")
    payload = {"text": f"?? 告警: {message}"}
    requests.post(webhook_url, json=payload)

依賴包:需安裝 requests

配置步驟

  • 在 Slack 創(chuàng)建 Incoming Webhook
  • .env 添加:
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXXX/YYYY

方案 4:桌面彈窗通知(適合本地開發(fā))

from plyer import notification
import sys

def send_alert(message):
    if sys.platform in ["win32", "darwin", "linux"]:
        notification.notify(
            title="密鑰異常",
            message=message,
            app_icon=None,
            timeout=10
        )

依賴包:需安裝 plyer

pip install plyer

最佳實踐建議

多通道組合

def send_alert(message):
    logging.error(message)          # 基礎(chǔ)日志
    send_to_slack_async(message)    # 異步非阻塞通知團(tuán)隊

異步處理

使用 threading 避免阻塞主程序:

import threading

def async_alert(message):
    threading.Thread(target=send_alert, args=(message,)).start()

敏感信息加密

對郵件/Slack 的憑據(jù)使用加密存儲:

from cryptography.fernet import Fernet

# 加密
cipher = Fernet(key)
encrypted = cipher.encrypt(b"secret_password")
# 解密
cipher.decrypt(encrypted)

完整示例代碼

import os
import logging
from dotenv import load_dotenv
from threading import Thread
import requests

# 加載環(huán)境變量
load_dotenv()

# 配置日志
logging.basicConfig(
    level=logging.ERROR,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

def send_alert(message):
    """多通道告警"""
    # 1. 本地日志
    logging.error(message)
    
    # 2. 異步Slack通知
    def _slack_alert(msg):
        try:
            webhook = os.getenv("SLACK_WEBHOOK")
            requests.post(webhook, json={"text": msg}, timeout=3)
        except Exception as e:
            logging.error(f"Slack通知失敗: {str(e)}")
    
    Thread(target=_slack_alert, args=(message,)).start()

# 使用示例
try:
    api_key = os.environ["API_KEY"]
except KeyError:
    send_alert("API_KEY 缺失!立即更新.env文件!")

選擇依據(jù)

方案適用場景可靠性復(fù)雜度
日志開發(fā)環(huán)境/簡單生產(chǎn)環(huán)境
郵件需要郵件通知的生產(chǎn)環(huán)境
Slack團(tuán)隊協(xié)作環(huán)境
桌面彈窗本地開發(fā)環(huán)境
組合方案關(guān)鍵業(yè)務(wù)系統(tǒng)最高

根據(jù)實際需求選擇,建議至少實現(xiàn)日志告警 + 一種主動通知方式。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)中文文本處理與分析程序的示例詳解

    Python實現(xiàn)中文文本處理與分析程序的示例詳解

    在當(dāng)今信息爆炸的時代,文本數(shù)據(jù)的處理與分析成為了數(shù)據(jù)科學(xué)領(lǐng)域的重要課題,本文將使用Python開發(fā)一款基于Python的中文文本處理與分析程序,希望對大家有所幫助
    2025-07-07
  • 使用paramiko遠(yuǎn)程執(zhí)行命令、下發(fā)文件的實例

    使用paramiko遠(yuǎn)程執(zhí)行命令、下發(fā)文件的實例

    下面小編就為大家?guī)硪黄褂胮aramiko遠(yuǎn)程執(zhí)行命令、下發(fā)文件的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 教你用Python寫一個京東自動下單搶購腳本

    教你用Python寫一個京東自動下單搶購腳本

    很多朋友都有網(wǎng)購搶購限量商品的經(jīng)歷,有時候蹲點搶怎么也搶不到,今天小編帶你們學(xué)習(xí)怎么用Python寫一個京東自動下單搶購腳本,以后再也不用拼手速拼網(wǎng)速啦,快來一起看看吧
    2023-03-03
  • python多個模塊py文件的數(shù)據(jù)共享實例

    python多個模塊py文件的數(shù)據(jù)共享實例

    今天小編就為大家分享一篇python多個模塊py文件的數(shù)據(jù)共享實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Windows下Python3.6安裝第三方模塊的方法

    Windows下Python3.6安裝第三方模塊的方法

    這篇文章主要介紹了Windows下Python3.6安裝第三方模塊的方法,需要的朋友可以參考下
    2018-11-11
  • python實現(xiàn)趣味圖片字符化

    python實現(xiàn)趣味圖片字符化

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)趣味圖片字符化,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python WSGI HTTP服務(wù)器Gunicorn使用詳解

    Python WSGI HTTP服務(wù)器Gunicorn使用詳解

    Gunicorn是Python的WSGI服務(wù)器,用于部署Flask/Django應(yīng)用,性能高且穩(wěn)定,支持多Worker類型與配置,可處理并發(fā)請求,需優(yōu)化參數(shù)并確保生產(chǎn)環(huán)境安全
    2025-08-08
  • python正則表達(dá)式最詳解

    python正則表達(dá)式最詳解

    篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)解釋,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2021-11-11
  • Python如何實現(xiàn)守護(hù)進(jìn)程的方法示例

    Python如何實現(xiàn)守護(hù)進(jìn)程的方法示例

    護(hù)進(jìn)程:通常被定義為一個后臺進(jìn)程,而且它不屬于任何一個終端會話(terminal session)。許多系統(tǒng)服務(wù)由守護(hù)程序?qū)嵤蝗缇W(wǎng)絡(luò)服務(wù),打印等。 下面這篇文章給大家分享了Python是如何實現(xiàn)守護(hù)進(jìn)程的方法示例,需要的朋友可以參考借鑒。
    2017-02-02
  • PyTorch中torch.nn模塊的實現(xiàn)

    PyTorch中torch.nn模塊的實現(xiàn)

    torch.nn是PyTorch中用于構(gòu)建神經(jīng)網(wǎng)絡(luò)的核心模塊,包括多種組件,每個組件都有其特定的原理和使用場景,本文就來詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2024-09-09

最新評論

南漳县| 德昌县| 万安县| 酒泉市| 宝丰县| 日喀则市| 惠水县| 嘉禾县| 延川县| 阿鲁科尔沁旗| 谢通门县| 杨浦区| 南靖县| 休宁县| 文成县| 铁岭市| 游戏| 江城| 兰州市| 台中市| 岳池县| 井冈山市| 驻马店市| 长海县| 长白| 巴东县| 讷河市| 绥德县| 鲁山县| 和林格尔县| 调兵山市| 苍溪县| 黑山县| 澄迈县| 古交市| 盐边县| 锦州市| 驻马店市| 郑州市| 淳化县| 阿荣旗|