返回 Skill 列表
extension
分类: 开发与工程无需 API Key

structured-logs-rfc-34

符合RFC-34标准的Java服务结构化日志规范。涵盖JSON日志格式、结构化参数、必填字段以及Logback配置。在实现或审查Java服务中的日志记录时使用。

person作者: jakexiaohubgithub

Structured Logs (RFC-34)

RFC-34 compliant structured logging standards for Java services.

When to use this skill

  • Implementing logging in new Java services
  • Converting unstructured logs to structured format
  • Reviewing logging practices
  • Configuring Logback for JSON output
  • Adding business context to logs

Skill Contents

Sections

Available Resources

📚 references/ - Detailed documentation


Quick Start

1. Add Dependencies

implementation 'org.springframework.boot:spring-boot-starter-logging'
implementation 'net.logstash.logback:logstash-logback-encoder:${latest_version}'

2. Use Structured Arguments

import static net.logstash.logback.argument.StructuredArguments.kv;

log.info("Transaction processed",
         kv("transaction_id", txn.getId()),
         kv("user_id", user.getId()));

This produces JSON with separate fields for transaction_id and user_id.

Required Fields

All logs must include these fields:

| Field | Description | |-------|-------------| | @timestamp | Log timestamp | | message | Log message text | | logger | Logger name | | thread_name | Thread name | | level | Log level (INFO, WARN, ERROR, etc.) | | dd.service | Service name | | dd.env | Environment | | dd.version | Service version |

Best Practices

  • Add business identifiers (IDs) as separate fields instead of embedding in messages
  • Keep log message text clear and concise
  • Use appropriate log levels consistently
  • Include enough context to understand the event without additional queries
  • Use snake_case for field names
  • For logs containing objects, properly structure them rather than using toString()

Example

// ✅ Good - structured fields
log.info("Order created", kv("order_id", orderId), kv("user_id", userId), kv("amount", amount));

// ❌ Bad - embedded in message
log.info("Order {} created for user {} with amount {}", orderId, userId, amount);

References

| Reference | Description | |-----------|-------------| | references/logging-standards.md | Complete RFC-34 implementation guide |

Related Rules

Related Skills

| Skill | Purpose | |-------|---------| | java-standards | General Java standards | | java-testing | Testing log output |

<!-- AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY --> <!-- Source: bitsoex/ai-code-instructions → java/skills/structured-logs-rfc-34/SKILL.md --> <!-- To modify, edit the source file and run the distribution workflow -->