117 lines
3.1 KiB
Python
117 lines
3.1 KiB
Python
"""
|
||
日志记录功能示例
|
||
演示如何在自定义脚本中使用日志功能
|
||
"""
|
||
from logger_utils import setup_logger
|
||
from datetime import datetime
|
||
import time
|
||
|
||
def example_without_logging():
|
||
"""示例1:不使用日志"""
|
||
print("=" * 60)
|
||
print("示例1:普通输出(不记录日志)")
|
||
print("=" * 60)
|
||
|
||
print("这是普通的print输出")
|
||
print("只会显示在终端")
|
||
print("不会保存到文件")
|
||
print()
|
||
|
||
|
||
def example_with_logging():
|
||
"""示例2:使用日志记录"""
|
||
print("=" * 60)
|
||
print("示例2:使用日志记录")
|
||
print("=" * 60)
|
||
|
||
# 使用with语句,自动管理日志文件
|
||
with setup_logger(log_file="example_demo.log", log_dir="logs"):
|
||
print("✅ 这条消息会同时输出到终端和文件")
|
||
print("✅ 运行一些计算...")
|
||
|
||
for i in range(5):
|
||
print(f" 步骤 {i+1}/5: 处理中...")
|
||
time.sleep(0.1)
|
||
|
||
print("✅ 计算完成!")
|
||
|
||
print("日志文件已关闭")
|
||
print()
|
||
|
||
|
||
def example_custom_filename():
|
||
"""示例3:使用时间戳命名"""
|
||
print("=" * 60)
|
||
print("示例3:自动生成时间戳文件名")
|
||
print("=" * 60)
|
||
|
||
# log_file=None 会自动生成时间戳文件名
|
||
with setup_logger(log_file=None, log_dir="logs"):
|
||
print("文件名会自动包含时间戳")
|
||
print("适合批量实验,避免覆盖")
|
||
|
||
print()
|
||
|
||
|
||
def example_append_mode():
|
||
"""示例4:追加模式"""
|
||
print("=" * 60)
|
||
print("示例4:追加到现有文件")
|
||
print("=" * 60)
|
||
|
||
# 第一次写入
|
||
with setup_logger(log_file="append_test.log", log_dir="logs", mode='w'):
|
||
print("第一次写入:这会覆盖文件")
|
||
|
||
# 第二次写入(追加)
|
||
with setup_logger(log_file="append_test.log", log_dir="logs", mode='a'):
|
||
print("第二次写入:这会追加到文件末尾")
|
||
|
||
print()
|
||
|
||
|
||
def example_complex_output():
|
||
"""示例5:复杂输出(包含颜色、格式)"""
|
||
print("=" * 60)
|
||
print("示例5:复杂输出格式")
|
||
print("=" * 60)
|
||
|
||
with setup_logger(log_file="complex_output.log", log_dir="logs"):
|
||
# 模拟多种输出格式
|
||
print("\n📊 实验统计:")
|
||
print(" - 实验名称:车道过滤测试")
|
||
print(" - 开始时间:", datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
|
||
print(" - 车辆总数:51")
|
||
print(" - 过滤后:45")
|
||
print("\n🚦 红绿灯检测:")
|
||
print(" ✅ 方法1成功:3辆")
|
||
print(" ✅ 方法2成功:2辆")
|
||
print(" ⚠️ 未检测到:40辆")
|
||
print("\n" + "="*50)
|
||
print("实验完成!")
|
||
|
||
print()
|
||
|
||
|
||
def main():
|
||
"""运行所有示例"""
|
||
print("\n" + "🎯 " + "="*56)
|
||
print("日志记录功能完整示例")
|
||
print("="*60 + "\n")
|
||
|
||
example_without_logging()
|
||
example_with_logging()
|
||
example_custom_filename()
|
||
example_append_mode()
|
||
example_complex_output()
|
||
|
||
print("="*60)
|
||
print("✅ 所有示例运行完成!")
|
||
print("📁 查看日志文件:ls -lh logs/")
|
||
print("="*60)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
main()
|
||
|