抖音弹幕游戏开发之第17集:添加日志系统·优雅草云桧·卓伊凡

《抖音弹幕游戏开发专栏》是优雅草建立的专栏,由优雅草资深开发工程师云桂提供实战教学配对发布有对应的视频教程,以下内容为技术文稿,卓伊凡辅助。
抖音弹幕游戏开发之第17集:添加日志系统·优雅草云桧·卓伊凡

第17集:添加日志系统

为什么需要日志系统

print的问题:

  • 信息会消失
  • 没有时间戳
  • 没有级别区分
  • 不便于分析

日志系统优势:

  • 持久化存储到文件
  • 每条日志有精确时间
  • 级别分类(DEBUG/INFO/WARNING/ERROR)
  • 格式统一,便于分析

日志级别

|----------|-------------|
| 级别 | 说明 |
| DEBUG | 调试信息,最详细 |
| INFO | 一般信息,正常运行记录 |
| WARNING | 警告信息,可能有问题 |
| ERROR | 错误信息,功能受影响 |
| CRITICAL | 严重错误,程序可能崩溃 |

配置日志系统

复制代码
import logging
from datetime import datetime

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s [%(levelname)s] %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    handlers=[
        logging.FileHandler(
            f'danmu_log_{datetime.now().strftime("%Y%m%d")}.txt',
            encoding='utf-8'
        ),
        logging.StreamHandler()  # 同时输出到控制台
    ]
)

logger = logging.getLogger(__name__)

替换print为logger

复制代码
# 连接成功
logger.info("抖音直播弹幕整蛊插件已启动!")

# 弹幕消息
logger.info(f"💬 [弹幕] {name}: {content}")

# 触发成功
logger.info(f"✓ 触发: {keyword} -> {key}")

# 冷却提示(用debug,太频繁)
logger.debug(f"⏰ 冷却中,还需等待 {remaining:.1f} 秒")

# 错误信息
logger.error(f"JSON解析失败: {e}")

# 警告信息
logger.warning("⚠️ 触发紧急停止!")

日志输出效果

复制代码
2024-12-28 15:30:45 [INFO] 正在连接弹幕服务器...
2024-12-28 15:30:46 [INFO] 抖音直播弹幕整蛊插件已启动!
2024-12-28 15:30:50 [INFO] 💬 [弹幕] 用户A: 跳
2024-12-28 15:30:50 [INFO] ✓ 触发: 跳 -> space

日志文件管理

每天一个日志文件:danmu_log_20241228.txt

本集总结

  • ✅ 理解日志系统的重要性
  • ✅ 配置Python的logging模块
  • ✅ 替换所有print为logger
  • ✅ 学习日志级别的使用
相关推荐
kyriewen1 分钟前
Anthropic 估值逼近万亿美元,Claude Sonnet 5 + Claude Science 一天两连发
前端·ai编程·claude
小徐_23331 小时前
Wot UI 2.2.0 发布:Button 新增 subtle,VideoPreview 预览体验继续增强
前端·微信小程序·uni-app
天蓝色的鱼鱼4 小时前
关于 CSS 你可能不知道的属性,但关键时刻很有用
前端·css
泯泷5 小时前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
妙码生花5 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(十五):优化细节、网络请求封装
前端·后端·ai编程
泯泷5 小时前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
团团崽_七分甜5 小时前
Spring Boot 核心知识点总结
前端
lichenyang4535 小时前
从一个按钮开始,理解 ASCF 框架到底在做什么
前端
古夕5 小时前
第三方 SSO 接入实践:redirect_uri 编码、回调一致性与跨项目联调
前端·vue.js