ln-771-logging-configurator

ln-771-logging-configurator

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ln-771-logging-configurator" with this command: npx skills add levnikolaevich/claude-code-skills/levnikolaevich-claude-code-skills-ln-771-logging-configurator

ln-771-logging-configurator

Type: L3 Worker Category: 7XX Project Bootstrap

Configures structured JSON logging for .NET and Python projects.

Overview

Aspect Details

Input Context Store from ln-770

Output Logging configuration files

Stacks .NET (Serilog), Python (structlog)

Phase 1: Receive Context

Accept Context Store from coordinator.

Required Context:

  • STACK : .NET or Python

  • FRAMEWORK : ASP.NET Core or FastAPI

  • FRAMEWORK_VERSION : Version number

  • PROJECT_ROOT : Project directory path

  • ENVIRONMENT : Development or Production

Validation:

  • If STACK not provided, detect from project files

  • If version not provided, use latest stable

Phase 2: Research Current Best Practices

Use MCP tools to get up-to-date documentation.

For .NET (Serilog):

MCP ref: "Serilog ASP.NET Core structured logging configuration" Context7: /serilog/serilog-aspnetcore

For Python (structlog):

MCP ref: "structlog Python structured logging configuration" Context7: /hynek/structlog

Key Patterns to Research:

  • Request logging middleware

  • Log enrichment (correlation ID, user context)

  • Log level configuration by environment

  • Sink configuration (Console, File, Seq, Elastic)

Phase 3: Decision Points

Ask user for configuration preferences.

Q1: Log Format

Option When to Use

JSON (Recommended for Production) Machine-readable, log aggregation systems

Pretty/Colored (Recommended for Development) Human-readable, local debugging

Q2: Enrichment Fields

Field Description Default

correlationId

Request tracking across services ✓ Yes

userId

Authenticated user identifier ✓ Yes

requestPath

HTTP request path ✓ Yes

responseTime

Request duration in ms ✓ Yes

machineName

Server hostname Optional

threadId

Thread identifier Optional

Q3: Log Sinks

Sink Use Case

Console Always enabled

File Local persistence, log rotation

Seq Structured log server

Elasticsearch Log aggregation at scale

Q4: Log Levels by Environment

Level Development Production

Default Debug Information

Microsoft.* Information Warning

System.* Information Warning

Application Debug Information

Phase 4: Generate Configuration

Generate files based on stack and decisions.

.NET Output Files

File Purpose

Extensions/LoggingExtensions.cs

Service registration

appsettings.json (update) Serilog configuration

appsettings.Development.json (update) Dev overrides

Generation Process:

  • Use MCP ref to get current Serilog API

  • Generate LoggingExtensions.cs with:

  • UseSerilog configuration

  • Request logging middleware

  • Enrichment configuration

  • Update appsettings.json with Serilog section

Packages to Add:

  • Serilog.AspNetCore

  • Serilog.Sinks.Console

  • Serilog.Sinks.File (if File sink selected)

  • Serilog.Enrichers.Environment (if machineName selected)

Python Output Files

File Purpose

core/logging_config.py

structlog configuration

middleware/logging_middleware.py

Request logging

Generation Process:

  • Use MCP ref to get current structlog API

  • Generate logging_config.py with:

  • Processor chain configuration

  • Renderer selection (JSON/Console)

  • Log level configuration

  • Generate logging_middleware.py for FastAPI

Packages to Add:

  • structlog

  • python-json-logger (if JSON format)

Phase 5: Validate

Verify the configuration works.

Validation Steps:

Check imports: Ensure all packages are available

  • .NET: dotnet list package | grep Serilog

  • Python: pip list | grep structlog

Syntax check:

  • .NET: dotnet build --no-restore

  • Python: python -m py_compile core/logging_config.py

Test log output:

  • Start application

  • Make test request

  • Verify log format matches configuration

Expected Log Format:

{ "timestamp": "2026-01-10T12:00:00.000Z", "level": "info", "message": "Request completed", "correlationId": "abc-123", "requestPath": "/api/health", "responseTime": 45, "statusCode": 200 }

Return to Coordinator

Return result to ln-770:

{ "status": "success", "files_created": [ "Extensions/LoggingExtensions.cs", "appsettings.json" ], "packages_added": [ "Serilog.AspNetCore", "Serilog.Sinks.Console" ], "registration_code": "services.AddLoggingServices(configuration);", "message": "Configured structured logging with Serilog" }

Idempotency

This skill is idempotent:

  • Phase 1: Check if logging already configured (Grep for Serilog/structlog)

  • If configured: Return { "status": "skipped", "message": "Logging already configured" }

  • If not: Proceed with configuration

Reference Links

  • Serilog.AspNetCore

  • structlog Documentation

  • ASP.NET Core Logging

Critical Rules

  • Use MCP ref/Context7 for current API — do not hardcode Serilog/structlog config from memory

  • Idempotent — if Serilog or structlog already configured, return status: "skipped" immediately

  • Environment-aware log levels — Debug for Development, Information for Production (never Warning default)

  • Always include correlation ID enrichment — required for distributed tracing

  • Return structured response — files_created , packages_added , registration_code for coordinator aggregation

Definition of Done

  • Context Store received and validated (stack, framework, version)

  • Best practices researched via MCP tools for target stack

  • User decisions collected (format, enrichment, sinks, log levels)

  • Configuration files generated (extensions/config + appsettings or Python modules)

  • Syntax validated (dotnet build or py_compile )

  • Structured JSON response returned to ln-770 coordinator

Version: 2.0.0 Last Updated: 2026-01-10

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

ln-782-test-runner

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-140-test-docs-creator

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-730-devops-setup

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

ln-775-api-docs-generator

No summary provided by upstream source.

Repository SourceNeeds Review