dykyi-roman/awesome-claude-code/create-structured-logger

Trust tier 2
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Generates Structured Logger for PHP 8.4. Creates PSR-3 structured logging setup with Monolog processors, correlation ID propagation, and context middleware. Includes unit tests.

Install

npx vskill@latest install dykyi-roman/awesome-claude-code/create-structured-logger

SKILL.md

Structured Logger Generator

Creates structured logging infrastructure for observability and request tracing.

When to Use

ScenarioExample
Distributed tracingCorrelate logs across microservices
Request debuggingTrack full request lifecycle
Audit loggingStructured records with context
Error investigationRich context in error logs

Component Characteristics

CorrelationId
  • Value Object wrapping UUIDv4
  • Immutable, self-validating
  • Propagated via X-Request-ID header
CorrelationIdProcessor
  • Monolog processor adding correlation_id to every record
  • Reads from CorrelationIdHolder thread-local storage
  • Zero-config: auto-enriches all log entries
RequestContextProcessor
  • Monolog processor adding request metadata
  • Captures method, URI, IP, user-agent
  • Enables filtering logs by request attributes
CorrelationIdMiddleware
  • PSR-15 middleware extracting or generating X-Request-ID
  • Stores in CorrelationIdHolder for downstream use
  • Adds correlation ID to response headers
CorrelationIdHolder
  • Static thread-local storage for correlation ID
  • Set once per request, available globally
  • Reset after request completes

Generation Process

Step 1: Generate Core Components

Path: src/Infrastructure/Logging/

  1. CorrelationId.php — Value Object with UUID validation
  2. CorrelationIdHolder.php — Thread-local correlation ID storage
Step 2: Generate Monolog Processors

Path: src/Infrastructure/Logging/Processor/

  1. CorrelationIdProcessor.php — Adds correlation_id to log records
  2. RequestContextProcessor.php — Adds request context to log records
Step 3: Generate Middleware

Path: src/Infrastructure/Logging/

  1. CorrelationIdMiddleware.php — PSR-15 middleware for correlation ID
Step 4: Generate Tests
  1. CorrelationIdTest.php — Value Object tests
  2. CorrelationIdProcessorTest.php — Processor enrichment tests
  3. CorrelationIdMiddlewareTest.php — Middleware behavior tests

File Placement

ComponentPath
Core Classessrc/Infrastructure/Logging/
Processorssrc/Infrastructure/Logging/Processor/
Unit Teststests/Unit/Infrastructure/Logging/

Naming Conventions

ComponentPatternExample
Value ObjectCorrelationIdCorrelationId
HolderCorrelationIdHolderCorrelationIdHolder
Processor{Context}ProcessorCorrelationIdProcessor
MiddlewareCorrelationIdMiddlewareCorrelationIdMiddleware
Test{ClassName}TestCorrelationIdTest

Quick Template Reference

CorrelationId
php
final readonly class CorrelationId
{
public function __construct(public string $value)
{
// Validates UUID v4 format
}
public static function generate(): self;
public function toString(): string;
}
CorrelationIdProcessor
php
final readonly class CorrelationIdProcessor
{
public function __invoke(LogRecord $record): LogRecord;
}
CorrelationIdMiddleware
php
final readonly class CorrelationIdMiddleware implements MiddlewareInterface
{
public function process(
ServerRequestInterface $request,
RequestHandlerInterface $handler
): ResponseInterface;
}

Usage Example

php
// Middleware extracts or generates correlation ID
$middleware = new CorrelationIdMiddleware(headerName: 'X-Request-ID');
// Monolog processor auto-enriches every log entry
$logger->pushProcessor(new CorrelationIdProcessor());
$logger->pushProcessor(new RequestContextProcessor($request));
// Log entry output:
// {"message":"Order created","correlation_id":"550e8400-...","method":"POST","uri":"/orders"}

Log Flow

Request ──→ CorrelationIdMiddleware
│
Extract/Generate X-Request-ID
│
Store in CorrelationIdHolder
│
CorrelationIdProcessor ──→ Adds correlation_id to every log
RequestContextProcessor ──→ Adds method, URI, IP to every log
│
Response ──→ Add X-Request-ID header

Anti-patterns to Avoid

Anti-patternProblemSolution
Manual correlation IDsInconsistent, easy to forgetAuto-enrich via processor
Unstructured logsCannot query or filterUse structured JSON format
No request contextCannot trace request flowAdd request processor
Global mutable loggerThread safety issuesUse holder with request scope
Missing response headerClient cannot correlateReturn X-Request-ID in response
No holder cleanupMemory leak between requestsReset holder after request

References

For complete PHP templates and examples, see:

  • references/templates.md — CorrelationId, Processors, Middleware, Holder templates
  • references/examples.md — Service integration examples and tests

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
96
Repository forks
25
7-day trend score
23

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/dykyi-roman/awesome-claude-code/create-structured-logger/badge)](https://verified-skill.com/skills/dykyi-roman/awesome-claude-code/create-structured-logger)

Something wrong with this skill or its page? Tell us.