ASCII 藝術範例
ASCII 藝術是 pretty-loguru 的招牌功能,能夠建立令人印象深刻的文字藝術標題。本頁面展示各種 ASCII 藝術的實際應用。
🎯 基本 ASCII 標題
應用程式啟動標題
python
from pretty_loguru import create_logger
# 初始化日誌系統
logger = create_logger(
name="ascii-art_demo",
log_path="ascii_demo",
level="INFO"
)
# 應用程式啟動
logger.ascii_header("APP START", font="slant", border_style="blue")
logger.info("正在載入配置...")
logger.success("應用程式啟動完成")
不同字體展示
python
def font_showcase():
"""展示所有可用的字體"""
# Standard 字體 - 經典樣式
logger.ascii_header("STANDARD", font="standard", border_style="blue")
# Slant 字體 - 斜體效果
logger.ascii_header("SLANT", font="slant", border_style="green")
# Doom 字體 - 粗體效果
logger.ascii_header("DOOM", font="doom", border_style="red")
# Small 字體 - 緊湊樣式
logger.ascii_header("SMALL", font="small", border_style="yellow")
# Block 字體 - 方塊樣式
logger.ascii_header("BLOCK", font="block", border_style="magenta")
# Digital 字體 - 數位樣式
logger.ascii_header("DIGITAL", font="digital", border_style="cyan")
font_showcase()
🌈 顏色主題展示
狀態指示顏色
python
def status_colors_demo():
"""使用不同顏色表示不同狀態"""
# 成功狀態 - 綠色
logger.ascii_header("SUCCESS", font="block", border_style="green")
logger.success("操作成功完成")
# 警告狀態 - 黃色
logger.ascii_header("WARNING", font="doom", border_style="yellow")
logger.warning("發現潛在問題")
# 錯誤狀態 - 紅色
logger.ascii_header("ERROR", font="doom", border_style="red")
logger.error("發生嚴重錯誤")
# 資訊狀態 - 藍色
logger.ascii_header("INFO", font="slant", border_style="blue")
logger.info("提供重要資訊")
# 特殊狀態 - 紫色
logger.ascii_header("SPECIAL", font="standard", border_style="magenta")
logger.info("特殊事件發生")
# 開發狀態 - 青色
logger.ascii_header("DEBUG", font="small", border_style="cyan")
logger.debug("除錯資訊")
status_colors_demo()
🚀 實際應用場景
系統啟動序列
python
def system_startup_sequence():
"""模擬系統啟動過程"""
import time
# 啟動標題
logger.ascii_header("SYSTEM BOOT", font="slant", border_style="blue")
logger.info("正在初始化系統...")
time.sleep(1)
# 載入階段
logger.ascii_header("LOADING", font="small", border_style="cyan")
logger.info("載入核心模組...")
logger.info("載入設備驅動...")
logger.info("載入網路堆疊...")
time.sleep(2)
# 檢查階段
logger.ascii_header("CHECKING", font="small", border_style="yellow")
logger.info("檢查硬體狀態...")
logger.success("CPU: 正常")
logger.success("記憶體: 正常")
logger.success("磁碟: 正常")
time.sleep(1)
# 完成標題
logger.ascii_header("READY", font="block", border_style="green")
logger.success("系統啟動完成")
logger.info("準備接受用戶請求")
system_startup_sequence()
部署流程標示
python
def deployment_workflow():
"""部署流程的各個階段標示"""
import time
# 開始部署
logger.ascii_header("DEPLOY", font="slant", border_style="blue")
logger.info("開始部署流程...")
# 構建階段
logger.ascii_header("BUILD", font="small", border_style="cyan")
logger.info("正在編譯程式碼...")
logger.info("正在打包應用...")
logger.success("構建完成")
time.sleep(1)
# 測試階段
logger.ascii_header("TEST", font="small", border_style="yellow")
logger.info("執行單元測試...")
logger.info("執行整合測試...")
logger.success("所有測試通過")
time.sleep(1)
# 部署階段
logger.ascii_header("DEPLOY", font="small", border_style="magenta")
logger.info("上傳到伺服器...")
logger.info("更新服務...")
logger.info("重啟應用...")
time.sleep(1)
# 驗證階段
logger.ascii_header("VERIFY", font="small", border_style="green")
logger.info("健康檢查...")
logger.success("服務運行正常")
# 完成
logger.ascii_header("COMPLETE", font="block", border_style="green")
logger.success("部署成功完成")
deployment_workflow()
錯誤處理流程
python
def error_handling_demo():
"""錯誤處理的視覺化展示"""
try:
# 模擬一些操作
logger.ascii_header("PROCESS", font="slant", border_style="blue")
logger.info("開始處理重要任務...")
# 模擬錯誤
raise Exception("模擬的系統錯誤")
except Exception as e:
# 錯誤標題
logger.ascii_header("ERROR", font="doom", border_style="red")
logger.error(f"發生錯誤: {e}")
# 錯誤分析
logger.ascii_header("ANALYZE", font="small", border_style="yellow")
logger.warning("正在分析錯誤原因...")
logger.info("檢查系統狀態...")
logger.info("檢查網路連接...")
# 恢復嘗試
logger.ascii_header("RECOVER", font="small", border_style="cyan")
logger.info("嘗試自動恢復...")
logger.info("重新初始化連接...")
# 恢復成功
logger.ascii_header("RECOVERED", font="slant", border_style="green")
logger.success("系統已恢復正常")
error_handling_demo()
數據處理管道
python
def data_pipeline_demo():
"""數據處理管道的階段標示"""
import time
# 開始處理
logger.ascii_header("PIPELINE", font="slant", border_style="blue")
logger.info("啟動數據處理管道...")
# 第一階段:提取
logger.ascii_header("EXTRACT", font="small", border_style="cyan")
logger.info("從數據源提取數據...")
logger.info("讀取 CSV 檔案...")
logger.info("連接 API 端點...")
logger.success("數據提取完成: 10,000 筆記錄")
time.sleep(1)
# 第二階段:轉換
logger.ascii_header("TRANSFORM", font="small", border_style="yellow")
logger.info("清理數據...")
logger.info("標準化格式...")
logger.info("驗證數據質量...")
logger.success("數據轉換完成: 9,856 筆有效記錄")
time.sleep(1)
# 第三階段:載入
logger.ascii_header("LOAD", font="small", border_style="magenta")
logger.info("寫入目標資料庫...")
logger.info("更新索引...")
logger.info("更新統計資訊...")
logger.success("數據載入完成")
time.sleep(1)
# 完成
logger.ascii_header("COMPLETE", font="block", border_style="green")
logger.success("數據管道執行成功")
logger.info("處理了 10,000 筆記錄")
logger.info("成功載入 9,856 筆記錄")
data_pipeline_demo()
監控和警報
python
def monitoring_alerts_demo():
"""監控系統的警報展示"""
# 正常監控
logger.ascii_header("MONITOR", font="digital", border_style="green")
logger.info("系統監控正常運行...")
# 檢測到異常
logger.ascii_header("ALERT", font="doom", border_style="red")
logger.warning("檢測到異常活動")
logger.error("CPU 使用率超過 90%")
logger.error("記憶體使用率超過 95%")
# 緊急響應
logger.ascii_header("EMERGENCY", font="doom", border_style="red")
logger.critical("啟動緊急響應程序")
logger.info("通知系統管理員...")
logger.info("啟動自動擴展...")
# 問題解決
logger.ascii_header("RESOLVED", font="slant", border_style="green")
logger.success("問題已解決")
logger.info("系統恢復正常運行")
monitoring_alerts_demo()
🔧 進階技巧
動態字體選擇
python
import random
def random_header_demo():
"""隨機選擇字體和顏色"""
fonts = ["standard", "slant", "doom", "small", "block", "digital"]
colors = ["blue", "green", "red", "yellow", "magenta", "cyan"]
for i in range(5):
font = random.choice(fonts)
color = random.choice(colors)
logger.ascii_header(
f"RANDOM {i+1}",
font=font,
border_style=color
)
logger.info(f"使用字體: {font}, 顏色: {color}")
random_header_demo()
條件式標題
python
def conditional_headers_demo(status, operation):
"""根據條件顯示不同的標題"""
if status == "success":
logger.ascii_header(
f"{operation} OK",
font="block",
border_style="green"
)
elif status == "warning":
logger.ascii_header(
f"{operation} WARN",
font="standard",
border_style="yellow"
)
elif status == "error":
logger.ascii_header(
f"{operation} FAIL",
font="doom",
border_style="red"
)
else:
logger.ascii_header(
f"{operation} INFO",
font="slant",
border_style="blue"
)
# 使用範例
conditional_headers_demo("success", "BACKUP")
conditional_headers_demo("error", "RESTORE")
conditional_headers_demo("warning", "UPDATE")
階段進度指示
python
def progress_stages_demo():
"""使用 ASCII 標題顯示進度階段"""
stages = [
("STAGE 1", "small", "cyan"),
("STAGE 2", "small", "cyan"),
("STAGE 3", "small", "cyan"),
("COMPLETE", "block", "green")
]
for i, (stage, font, color) in enumerate(stages):
logger.ascii_header(stage, font=font, border_style=color)
if i < len(stages) - 1:
logger.info(f"執行階段 {i+1} 的任務...")
logger.success(f"階段 {i+1} 完成")
else:
logger.success("所有階段完成!")
progress_stages_demo()
字體組合效果
python
def font_combination_demo():
"""展示不同場景下的字體選擇"""
# 系統相關 - 使用 standard 字體
logger.ascii_header("SYSTEM", font="standard", border_style="blue")
logger.info("系統級操作使用標準字體")
# 成功消息 - 使用 slant 字體
logger.ascii_header("SUCCESS", font="slant", border_style="green")
logger.success("成功消息使用斜體字體")
# 錯誤警告 - 使用 doom 字體
logger.ascii_header("ERROR", font="doom", border_style="red")
logger.error("錯誤警告使用粗體字體")
# 快速狀態 - 使用 small 字體
logger.ascii_header("STATUS", font="small", border_style="cyan")
logger.info("狀態更新使用小型字體")
# 重要里程碑 - 使用 block 字體
logger.ascii_header("MILESTONE", font="block", border_style="magenta")
logger.success("重要里程碑使用方塊字體")
font_combination_demo()
⚠️ 使用注意事項
ASCII 字符限制
python
from pretty_loguru import is_ascii_only
def ascii_validation_demo():
"""展示 ASCII 字符驗證"""
test_strings = [
"HELLO WORLD", # 正確
"TEST 123", # 正確
"HELLO 世界", # 錯誤 - 包含中文
"CAFÉ", # 錯誤 - 包含重音符號
"ASCII ONLY" # 正確
]
for text in test_strings:
if is_ascii_only(text):
logger.ascii_header(text, font="standard", border_style="green")
logger.success(f"'{text}' 可以使用 ASCII 藝術")
else:
logger.warning(f"'{text}' 包含非 ASCII 字符,無法使用 ASCII 藝術")
logger.info(f"=== {text} ===") # 使用普通標題
ascii_validation_demo()
長度建議
python
def length_guidelines_demo():
"""長度使用建議"""
# 推薦長度 - 效果良好
short_titles = ["START", "OK", "ERROR", "DONE", "READY"]
for title in short_titles:
logger.ascii_header(title, font="slant", border_style="green")
# 中等長度 - 可接受
medium_titles = ["STARTUP", "SUCCESS", "WARNING", "COMPLETE"]
for title in medium_titles:
logger.ascii_header(title, font="standard", border_style="blue")
# 較長文字 - 需要注意效果
logger.ascii_header("DEPLOYMENT", font="small", border_style="yellow")
logger.warning("較長的文字建議使用小型字體")
length_guidelines_demo()
🎨 創意應用
動畫效果模擬
python
def animation_effect_demo():
"""模擬動畫效果"""
import time
# 倒數計時效果
for i in range(3, 0, -1):
logger.ascii_header(str(i), font="doom", border_style="yellow")
time.sleep(1)
logger.ascii_header("GO", font="doom", border_style="green")
logger.success("倒數計時完成!")
animation_effect_demo()
品牌標識
python
def branding_demo():
"""品牌標識展示"""
# 公司標識
logger.ascii_header("COMPANY", font="block", border_style="blue")
logger.info("這是公司的品牌標識")
# 產品標識
logger.ascii_header("PRODUCT", font="slant", border_style="magenta")
logger.info("這是產品的品牌標識")
# 版本標識
logger.ascii_header("V2.0", font="digital", border_style="cyan")
logger.info("版本資訊標識")
branding_demo()
🚀 完整範例
綜合所有技巧的完整範例:
python
def complete_ascii_demo():
"""ASCII 藝術功能完整展示"""
import time
logger = create_logger(
name="ascii-art_demo",
log_path="complete_ascii_demo",
level="INFO"
)
# 1. 歡迎標題
logger.ascii_header("WELCOME", font="slant", border_style="blue")
logger.info("歡迎使用 ASCII 藝術展示")
# 2. 字體展示
logger.ascii_header("FONTS", font="standard", border_style="cyan")
fonts = ["standard", "slant", "doom", "small", "block"]
for font in fonts:
logger.ascii_header("DEMO", font=font, border_style="green")
logger.info(f"字體: {font}")
time.sleep(0.5)
# 3. 顏色展示
logger.ascii_header("COLORS", font="standard", border_style="cyan")
colors = ["red", "green", "blue", "yellow", "magenta"]
for color in colors:
logger.ascii_header("COLOR", font="slant", border_style=color)
logger.info(f"顏色: {color}")
time.sleep(0.5)
# 4. 應用場景
logger.ascii_header("APPS", font="standard", border_style="cyan")
# 模擬啟動
logger.ascii_header("START", font="slant", border_style="blue")
logger.info("模擬應用啟動...")
# 模擬處理
logger.ascii_header("WORK", font="small", border_style="yellow")
logger.info("模擬工作處理...")
# 模擬完成
logger.ascii_header("DONE", font="block", border_style="green")
logger.success("展示完成!")
# 5. 結束標題
logger.ascii_header("GOODBYE", font="slant", border_style="magenta")
logger.info("感謝觀看 ASCII 藝術展示")
if __name__ == "__main__":
complete_ascii_demo()
這個完整的範例展示了 ASCII 藝術的所有主要功能和創意應用。運行這些程式碼,你會看到令人印象深刻的視覺效果!