日志系统功能说明
1. 日志文件结构
/opt/gradio<span class="hljs-emphasis">_app/chatbot_</span>logs/
├── chatbot.log # 应用运行日志
├── error.log # 错误日志
├── api<span class="hljs-emphasis">_calls.log # API调用详细日志
├── chat_</span>history.jsonl # 结构化聊天历史(JSON格式)
└── stats.json # 系统统计数据
2. 记录的详细信息
-
每次查询的完整信息:消息、响应、时间戳
-
API调用详情:耗时、成功/失败状态
-
错误追踪:完整的错误堆栈
-
系统统计:查询次数、成功率、平均响应时间
3. 新增功能
-
统计面板:在Web界面中添加了统计查看标签页
-
JSONL格式日志:方便机器处理和分析
-
自动统计:实时统计查询次数、成功率等
-
日志轮转:避免日志文件过大
4. 查看日志的命令
<span class="hljs-comment"># 实时查看应用日志</span>
<span class="hljs-built_in">tail</span> -f /opt/gradio_app/chatbot_logs/chatbot.log
<span class="hljs-comment"># 查看API调用日志</span>
<span class="hljs-built_in">tail</span> -f /opt/gradio_app/chatbot_logs/api_calls.log
<span class="hljs-comment"># 查看聊天历史(JSON格式)</span>
<span class="hljs-built_in">tail</span> -n 5 /opt/gradio_app/chatbot_logs/chat_history.jsonl | python3 -m json.tool
<span class="hljs-comment"># 查看系统统计</span>
<span class="hljs-built_in">cat</span> /opt/gradio_app/chatbot_logs/stats.json | python3 -m json.tool
<span class="hljs-comment"># 查看今日聊天数量</span>
grep -c <span class="hljs-string">"<span class="hljs-subst">$(date +%Y-%m-%d)</span>"</span> /opt/gradio_app/chatbot_logs/chat_history.jsonl
5. 日志示例
chat_history.jsonl 中的一条记录:
<span class="hljs-punctuation">{</span>
<span class="hljs-attr">"query_id"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"chat_1741590000_1234"</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"message"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"解释量子力学"</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"timestamp"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"2025-03-10T14:30:00.123456"</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"status"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"success"</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"history_length"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-number">2</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"response"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"量子力学是研究微观粒子运动规律的物理学分支..."</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"response_length"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-number">450</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"duration"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-number">1.23</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"api_call"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span>
<span class="hljs-attr">"success"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-literal"><span class="hljs-keyword">true</span></span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"duration"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-number">1.2</span>
<span class="hljs-punctuation">,</span>
<span class="hljs-attr">"model"</span>
<span class="hljs-punctuation">:</span> <span class="hljs-string">"gpt-3.5-turbo"</span>
<span class="hljs-punctuation">}</span>
<span class="hljs-punctuation">}</span>
api_calls.log 中的记录:
2025-03-10 14:30:00 | ID:chat<span class="hljs-emphasis">_1741590000_</span>1234 | 消息:'解释量子力学' | 耗时:1.20s | 成功
6. 启动服务
<span class="hljs-comment"># 进入目录</span>
<span class="hljs-built_in">cd</span> /opt/gradio_app
<span class="hljs-comment"># 停止旧服务</span>
pkill -f <span class="hljs-string">"python3.*7860"</span>
<span class="hljs-comment"># 启动新服务</span>
<span class="hljs-built_in">nohup</span> python3 chatbot_app.py > /opt/gradio_app/chatbot_run.log 2>&1 &
<span class="hljs-comment"># 查看启动日志</span>
<span class="hljs-built_in">tail</span> -f /opt/gradio_app/chatbot_run.log
这个修改后的代码提供了完整的日志记录功能,您可以:
-
实时监控聊天机器人的运行状态
-
查看每次对话的详细记录
-
分析API调用性能
-
查看系统统计数据
-
快速排查问题