Receber por email
← Voltar para o catálogo

ln-771-logging-configurator

Configures structured JSON logging with Serilog (.NET) or structlog (Python). Use when adding logging to backend projects.

497estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add levnikolaevich/claude-code-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/ln-771-logging-configurator/svg)](https://www.skillteca.com.br/skills/ln-771-logging-configurator)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

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:

  1. Request logging middleware
  2. Log enrichment (correlation ID, user context)
  3. Log level configuration by environment
  4. 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:

  1. Use MCP ref to get current Serilog API
  2. Generate LoggingExtensions.cs with:
  3. UseSerilog configuration
  4. Request logging middleware
  5. Enrichment configuration
  6. 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:

  1. Use MCP ref to get current structlog API
  2. Generate logging_config.py with:
  3. Processor chain configuration
  4. Renderer selection (JSON/Console)
  5. Log level configuration
  6. 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:

  1. Check imports: Ensure all packages are available
  2. .NET: dotnet list package | grep Serilog
  3. Python: pip list | grep structlog
  1. Syntax check:
  2. .NET: dotnet build --no-restore
  3. Python: python -m py_compile core/logging_config.py
  1. Test log output:
  2. Start application
  3. Make test request
  4. 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

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

Compartilhar X LinkedIn