--- name: logback-config-rfc-27 description: > RFC-27 compliant static Logback configuration for Java services. Covers logback.xml structure, appenders, encoders, and deployment-specific configuration. Use when setting up or reviewing logging configuration in Java services. compatibility: Java projects using Spring Boot with Logback metadata: version: "1.0.0" technology: java category: observability tags: - java - logging - rfc-27 - logback - configuration --- # Logback Configuration (RFC-27) RFC-27 compliant static Logback configuration for Java services. ## When to use this skill - Setting up logging configuration for new Java services - Reviewing or updating logback.xml configuration - Configuring environment-specific logging - Setting up log file rotation and retention - Configuring appenders for different outputs (console, file, JSON) ## Skill Contents ### Sections - [When to use this skill](#when-to-use-this-skill) (L24-L31) - [Quick Start](#quick-start) (L52-L90) - [Configuration Structure](#configuration-structure) (L91-L115) - [Appender Types](#appender-types) (L116-L134) - [Environment Configuration](#environment-configuration) (L135-L154) - [References](#references) (L155-L160) - [Related Rules](#related-rules) (L161-L164) - [Related Skills](#related-skills) (L165-L170) ### Available Resources **📚 references/** - Detailed documentation - [configuration patterns](references/configuration-patterns.md) --- ## Quick Start ### 1. Create logback-spring.xml Place in `src/main/resources/logback-spring.xml`: ```xml %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ``` ### 2. Do NOT Commit logback.xml to Git Per RFC-27, `logback.xml` should NOT be in version control. Use `logback-spring.xml` instead, which supports Spring profiles. ## Configuration Structure ### Required Elements | Element | Purpose | |---------|---------| | `` | Root element with optional scan attributes | | `` | Defines output destination | | `` | Formats log messages | | `` | Default logging level | ### Spring Profile Integration Use `` to apply configuration conditionally: ```xml ``` ## Appender Types | Appender | Use Case | |----------|----------| | `ConsoleAppender` | Standard output (container logs) | | `RollingFileAppender` | File with rotation | | `AsyncAppender` | Non-blocking wrapper | ### Console Appender (Production) ```xml traceId spanId ``` ## Environment Configuration ### Log Levels per Environment | Environment | Root Level | Notes | |-------------|------------|-------| | `local` | DEBUG | Verbose for development | | `development` | INFO | Standard logging | | `staging` | INFO | Match production | | `production` | INFO | Minimize noise | ### Logger Overrides ```xml ``` ## References | Reference | Description | |-----------|-------------| | [references/configuration-patterns.md](references/configuration-patterns.md) | Detailed configuration examples | ## Related Rules - [java-structured-logs](.cursor/rules/java-structured-logs/java-structured-logs.mdc) - Structured logging standards (RFC-34) ## Related Skills | Skill | Purpose | |-------|---------| | [structured-logs-rfc-34](.claude/skills/structured-logs-rfc-34/SKILL.md) | Structured logging format | | [dynamic-loglevel-rfc-27](.claude/skills/dynamic-loglevel-rfc-27/SKILL.md) | Runtime log level control |