Skip to content

視覺化功能範例

pretty-loguru 的視覺化功能是其最大特色,本章節將展示所有視覺化功能的實際應用和效果。

📖 本章內容

🎨 視覺化功能總覽

Rich 區塊 - 結構化日誌

Rich 區塊提供帶邊框的結構化內容展示:

python
from pretty_loguru import create_logger

logger.block(
    "系統狀態檢查",
    [
        "CPU 使用率: 25%",
        "記憶體使用: 60%",
        "磁碟空間: 120GB 可用",
        "網路連接: 正常"
    ],
    border_style="green",
    log_level="INFO"
)

ASCII 藝術 - 引人注目的標題

使用多種字體建立視覺震撼的標題:

python
logger.ascii_header("SYSTEM READY", font="slant", border_style="blue")
logger.ascii_header("WARNING", font="doom", border_style="yellow")
logger.ascii_header("ERROR", font="block", border_style="red")

ASCII 區塊 - 完整的報告格式

結合 ASCII 標題和 Rich 區塊的強大功能:

python
logger.ascii_block(
    "部署完成報告",
    [
        "版本: v2.1.0",
        "部署時間: 3分45秒", 
        "服務檢查: 全部通過",
        "負載均衡: 已啟用"
    ],
    ascii_header="DEPLOYED",
    ascii_font="block",
    border_style="green"
)

🎯 學習路徑

🚀 快速體驗 (5 分鐘)

適合想要快速了解視覺化效果的開發者:

  1. Rich 區塊基礎 - 了解基本的區塊格式
  2. ASCII 標題體驗 - 建立第一個 ASCII 標題

🎨 深度探索 (15 分鐘)

適合想要掌握所有視覺功能的開發者:

  1. 邊框樣式和顏色 - 掌握各種視覺效果
  2. ASCII 字體大全 - 了解所有可用字體
  3. Rich 組件整合 - 表格、樹狀圖等高級功能

🚀 實戰應用 (20 分鐘)

適合想要在實際專案中應用的開發者:

  1. ASCII 區塊應用 - 完整的報告格式
  2. 組合效果設計 - 建立專業級的視覺輸出
  3. 實際場景應用 - 真實專案中的使用案例

🎮 互動式範例

完整的視覺化展示

以下是一個綜合展示所有視覺功能的範例:

python
import time
from pretty_loguru import create_logger

def visual_showcase():
    """視覺化功能完整展示"""
    
    # 初始化日誌系統
    logger = create_logger(
    name="visual_demo",
    log_path="visual_demo",
    level="INFO"
)
    
    # 1. 啟動標題
    logger.ascii_header("VISUAL DEMO", font="slant", border_style="blue")
    
    # 2. 基本日誌級別展示
    logger.debug("這是除錯訊息")
    logger.info("這是一般訊息")
    logger.success("這是成功訊息")
    logger.warning("這是警告訊息")
    logger.error("這是錯誤訊息")
    
    time.sleep(1)
    
    # 3. Rich 區塊展示
    logger.block(
        "系統資源監控",
        [
            "🖥️  CPU 使用率: 23%",
            "💾 記憶體使用: 1.2GB / 8GB",
            "💿 磁碟空間: 156GB 可用",
            "🌐 網路狀態: 連接正常",
            "⚡ 服務狀態: 全部運行"
        ],
        border_style="green"
    )
    
    time.sleep(1)
    
    # 4. 不同顏色的區塊
    logger.block(
        "注意事項",
        [
            "⚠️  記憶體使用率偏高",
            "⚠️  建議監控系統負載",
            "💡 考慮擴展硬體資源"
        ],
        border_style="yellow",
        log_level="WARNING"
    )
    
    time.sleep(1)
    
    # 5. ASCII 藝術區塊
    logger.ascii_block(
        "演示完成摘要",
        [
            "✅ 基本日誌: 已展示",
            "✅ Rich 區塊: 已展示", 
            "✅ ASCII 標題: 已展示",
            "✅ ASCII 區塊: 已展示",
            "🎉 狀態: 演示完成"
        ],
        ascii_header="COMPLETE",
        ascii_font="block",
        border_style="green",
        log_level="SUCCESS"
    )
    
    # 6. 結束標題
    logger.ascii_header("DEMO END", font="standard", border_style="magenta")

if __name__ == "__main__":
    visual_showcase()

系統監控儀表板範例

python
def system_dashboard():
    """模擬系統監控儀表板"""
    
    logger.ascii_header("MONITOR", font="digital", border_style="cyan")
    
    # CPU 狀態
    logger.block(
        "處理器狀態",
        [
            "型號: Intel Core i7-9700K",
            "核心數: 8 核心 8 線程",
            "使用率: 45%",
            "溫度: 58°C"
        ],
        border_style="blue"
    )
    
    # 記憶體狀態
    logger.block(
        "記憶體狀態", 
        [
            "總容量: 16GB DDR4",
            "已使用: 7.2GB (45%)",
            "可用: 8.8GB",
            "快取: 2.1GB"
        ],
        border_style="green"
    )
    
    # 磁碟狀態
    logger.block(
        "儲存狀態",
        [
            "系統碟 (C:): 256GB SSD",
            "已使用: 180GB (70%)",
            "可用: 76GB",
            "資料碟 (D:): 1TB HDD"
        ],
        border_style="yellow"
    )
    
    logger.ascii_header("STATUS OK", font="small", border_style="green")

📊 視覺效果對比

傳統日誌 vs pretty-loguru

傳統日誌輸出:

2024-06-30 15:30:22 INFO Application started
2024-06-30 15:30:23 INFO Database connected
2024-06-30 15:30:24 WARNING High memory usage
2024-06-30 15:30:25 ERROR Connection failed

pretty-loguru 視覺化輸出:

 ____  _____  _     ____  _____ 
/ ___|_   _|/ \   |  _ \|_   _|
\___ \ | | / _ \  | |_) || |   
 ___) || |/ ___ \ |  _ < | |   
|____/ |_/_/   \_\|_| \_\|_|   

┌─ 系統啟動狀態 ─┐
│ ✅ 應用程式啟動  │
│ ✅ 資料庫連接    │
│ ⚠️  記憶體使用高  │
│ ❌ 連接失敗      │
└─────────────┘

🔧 自定義指南

建立一致的視覺風格

python
class VisualLogger:
    """統一的視覺化日誌類別"""
    
    def __init__(self):
        self.success_color = "green"
        self.warning_color = "yellow"
        self.error_color = "red"
        self.info_color = "blue"
        self.header_font = "slant"
    
    def success_report(self, title, items):
        logger.ascii_block(
            title, items,
            ascii_header="SUCCESS",
            ascii_font=self.header_font,
            border_style=self.success_color,
            log_level="SUCCESS"
        )
    
    def warning_report(self, title, items):
        logger.ascii_block(
            title, items,
            ascii_header="WARNING", 
            ascii_font=self.header_font,
            border_style=self.warning_color,
            log_level="WARNING"
        )
    
    def error_report(self, title, items):
        logger.ascii_block(
            title, items,
            ascii_header="ERROR",
            ascii_font="doom",
            border_style=self.error_color,
            log_level="ERROR"
        )

# 使用範例
visual = VisualLogger()
visual.success_report("部署完成", ["版本: v1.0", "狀態: 正常"])

💡 最佳實踐建議

1. 適度使用視覺效果

python
# 推薦 - 重要事件使用視覺化
logger.ascii_header("APP START", font="slant")  # 應用啟動
logger.block("配置資訊", config_items)          # 重要資訊

# 不推薦 - 過度使用視覺效果
logger.ascii_header("DEBUG", font="doom")       # 一般除錯訊息

2. 保持一致的風格

python
# 建立風格指南
SUCCESS_STYLE = {"border_style": "green", "ascii_font": "slant"}
WARNING_STYLE = {"border_style": "yellow", "ascii_font": "standard"}
ERROR_STYLE = {"border_style": "red", "ascii_font": "doom"}

3. 考慮輸出環境

python
import os

def adaptive_logging(message):
    """根據環境調整日誌樣式"""
    if os.getenv("ENVIRONMENT") == "production":
        # 生產環境使用簡潔樣式
        logger.info(message)
    else:
        # 開發環境使用豐富樣式
        logger.block("開發訊息", [message], border_style="blue")

🚀 下一步

選擇一個感興趣的範例開始深入學習:

讓你的日誌輸出變得更加專業和吸引人!

基於 MIT 許可證發布