Skip to main content
版权归属于 LangChat Team
官网:https://langchat.cn

15 - 日志

版本说明

本文档基于 LangChain4j 1.10.0 版本编写。

学习目标

通过本章节学习,你将能够:
  • 理解 LangChain4j 日志的重要性
  • 掌握日志级别和配置
  • 学会使用 SLF4J 记录日志
  • 理解请求和响应日志
  • 掌握日志过滤和输出控制
  • 实现一个完整的日志配置

前置知识

  • 完成《01 - LangChain4j 简介》章节
  • 完成《02 - 你的第一个 Chat 应用》章节
  • Java 日志框架基础知识(SLF4J, Logback)

核心概念

为什么需要日志?

日志是任何应用的重要组件,特别是与 LLM 交互的应用:
  1. 调试问题 - 追踪 API 请求和响应
  2. 性能监控 - 测量响应时间和吞吐量
  3. 合规审计 - 记录敏感操作和数据访问
  4. 错误追踪 - 捕获和分析错误模式
  5. 成本控制 - 监控 Token 使用量和 API 费用
  6. 用户行为分析 - 了解用户如何与 AI 交互

LangChain4j 日志功能

LangChain4j 提供了丰富的日志功能:
  • 请求日志 - 记录发送给 LLM 的完整请求
  • 响应日志 - 记录从 LLM 返回的完整响应
  • Token 使用日志 - 记录每个请求的 Token 消耗
  • 错误日志 - 记录 API 错误和异常
  • 性能日志 - 记录请求耗时和吞吐量

日志级别

日志配置

基础日志配置

配置请求和响应日志

日志格式化

日志过滤和输出控制

配置日志级别

动态日志级别

日志与监控

性能监控日志

Token 使用监控

日志最佳实践

日志最佳实践

总结

本章要点

  1. 日志重要性
    • 调试和问题排查
    • 性能监控和优化
    • 合规审计和成本控制
  2. 日志配置
    • 请求和响应日志
    • Token 使用监控
    • 错误和警告日志
  3. 日志级别
    • DEBUG - 详细诊断信息
    • INFO - 重要业务逻辑
    • WARN - 潜在问题
    • ERROR - 应用错误
  4. 最佳实践
    • 使用参数化日志
    • 避免过度日志
    • 使用适当的日志级别
    • 保护敏感信息
  5. 监控
    • 性能监控
    • Token 使用统计
    • 成本计算

下一步

在下一章节中,我们将学习:
  • 可观测性配置
  • 分布式追踪
  • 性能分析和优化
  • 错误处理和重试
  • 生产环境部署建议

常见问题

Q1:如何启用 LangChain4j 的日志? A:
  1. 配置 SLF4J 日志级别
  2. 在构建模型时设置 logRequests(true)logResponses(true)
  3. 使用 -Dorg.slf4j.simpleLogger.logLevel=debug JVM 参数
  4. 配置 logback.xml 文件
Q2:如何减少日志的噪音? A:
  1. 合理设置日志级别(生产环境使用 INFO 或 WARN)
  2. 避免在循环中过度记录
  3. 使用条件日志记录
  4. 配置日志过滤器
Q3:如何记录 Token 使用情况? A:
  1. 启用响应日志(logResponses(true))
  2. 从 ChatResponse 中获取 Token 使用量
  3. 创建自定义 Token 监控器
  4. 定期统计和报告
Q4:如何在生产环境中配置日志? A:生产环境建议:
  1. 日志级别设置为 INFO 或 WARN
  2. 使用异步日志追加器
  3. 配置日志轮转和归档
  4. 避免敏感信息记录
  5. 集中日志到日志系统(如 ELK)
Q5:如何监控 API 成本? A:
  1. 记录每个请求的 Token 使用量
  2. 计算每个模型的成本
  3. 设置成本告警阈值
  4. 定期生成成本报告
  5. 与预算进行比较和控制

参考资料


版权归属于 LangChat Team
官网:https://langchat.cn