统一日志规范的核心在于建立一套全团队必须遵守的日志标准协议,明确日志的格式、级别、字段、输出方式和命名规则。以下是具体的实施指南:
推荐使用 JSON 格式 输出日志,因其结构化、易于解析且机器友好。一条标准的日志应包含以下核心字段:
| 字段名 | 含义 | 示例 |
|---|---|---|
timestamp |
ISO8601标准时间戳 | 2023-10-27T10:00:00.000+08:00 |
level |
日志级别(大写) | INFO, ERROR |
service_name |
服务或应用名 | user-service |
trace_id |
链路追踪ID(用于串联请求) | a1b2c3d4... |
message |
简洁的日志描述 | 用户登录成功 |
exception |
异常堆栈(仅Error级别) | {...} |
示例(JSON格式):
{
"timestamp": "2023-10-27T10:00:00.000+08:00",
"level": "ERROR",
"service": "payment-service",
"trace_id": "abc-123-xyz",
"message": "支付回调处理失败",
"user_id": "10001",
"error_detail": "Connection timeout"
}
严格定义各级别的使用场景,防止滥用 ERROR 或乱打 DEBUG 导致日志噪音。
trace_id,并在 RPC 调用、MQ 发送时透传,这是排查跨服务问题的唯一线索。138****0000)。log.info("用户 {} 查询订单 {}", userId, orderId);log.info("用户 " + userId + " 查询订单 " + orderId);服务名-日志类型-日期.log 格式,例如 user-service-app-2023-10-27.log 或 user-service-error-2023-10-27.log。/var/log/app/),便于容器化部署和采集。trace_id 等公共字段。System.out.println 或字符串拼接日志等违规写法。规范统一后,日志的价值在于分析。建议接入 ELK (Elasticsearch, Logstash, Kibana) 或 Loki 进行集中采集。通过规范中的 level 和 service_name 字段,可以快速构建监控大盘,例如统计每分钟的 ERROR 日志数量,或针对特定 trace_id 进行全链路日志检索。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。