Claude-skill-registry cui-logging
CUI logging standards with CuiLogger, LogRecord patterns, and DSL-style LogMessages classes
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cui-logging" ~/.claude/skills/majiayu000-claude-skill-registry-cui-logging && rm -rf "$T"
skills/data/cui-logging/SKILL.mdCUI Logging Skill
REFERENCE MODE: This skill provides reference material. Load specific standards on-demand based on current task.
CUI-specific logging standards for projects using the CUI logging framework (cui-java-tools). This skill covers CuiLogger usage, LogRecord patterns, and DSL-style LogMessages classes.
Prerequisites
This skill requires CUI library dependencies:
(CuiLogger, LogRecord)de.cuioss:cui-java-tools
Workflow
Step 1: Load Core Logging Standards
CRITICAL: Load these standards for any logging-related work.
Read: standards/logging-standards.md
This provides the foundational rules:
- MUST use
(SLF4J/Log4j FORBIDDEN)CuiLogger - MUST use
for INFO/WARN/ERROR/FATAL levelsLogRecord - Exception parameter MUST come first in all logging calls
Step 2: Load Additional Standards (As Needed)
DSL Constants Pattern (load when creating LogMessages classes):
Read: standards/dsl-constants.md
Use when: Implementing DSL-style LogMessages classes with nested static classes and @UtilityClass pattern.
LogMessages Documentation (load when documenting):
Read: standards/logmessages-documentation.md
Use when: Writing AsciiDoc documentation for LogMessages classes.
Logging Maintenance (load for migration/refactoring):
Read: standards/logging-maintenance-reference.md
Use when: Large-scale logger migration, LogRecord implementation, or maintenance work.
Key Rules Summary
CuiLogger Usage
// CORRECT private static final CuiLogger LOGGER = new CuiLogger(MyClass.class); // FORBIDDEN - Never use SLF4J or Log4j directly private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
LogRecord for Structured Messages
// CORRECT - Use LogRecord for INFO and above LOGGER.info(INFO.getResolver().formatted("Processing completed")); LOGGER.warn(WARN.getResolver().formatted("Resource low: %s", resourceName)); LOGGER.error(exception, ERROR.getResolver().formatted("Failed to process")); // DEBUG/TRACE - Direct logging allowed (no LogRecord needed) LOGGER.debug("Debug message: %s", value);
Exception Handling
// CORRECT - Exception FIRST LOGGER.error(exception, ERROR.getResolver().formatted("Operation failed")); // WRONG - Exception position LOGGER.error(ERROR.getResolver().formatted("Operation failed"), exception);
Related Skills
- General Java patterns (no CUI dependencies)pm-dev-java:java-core
- CUI test utilities including JUL testing with LogAssertspm-dev-java-cui:cui-testing
Standards Reference
| Standard | Purpose |
|---|---|
| logging-standards.md | Core CuiLogger, LogRecord rules, and compliance verification |
| dsl-constants.md | DSL-style constant organization |
| logmessages-documentation.md | AsciiDoc documentation patterns |
| logging-maintenance-reference.md | Migration and maintenance |