logging-fundamentals

Implement proper logging practices including log levels, structured logging, context propagation, and logging best practices for applications and systems

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 "logging-fundamentals" with this command: npx skills add wojons/skills/wojons-skills-logging-fundamentals

Logging Fundamentals

Establish proper logging practices including log levels, structured logging, context propagation, and comprehensive logging strategies for applications, services, and infrastructure.

When to use me

Use this skill when:

  • Setting up logging for new applications or services
  • Reviewing existing logging implementations
  • Establishing logging standards for teams or projects
  • Debugging issues with incomplete or poor logging
  • Implementing structured logging for better observability
  • Configuring log levels and verbosity for different environments
  • Ensuring logs contain sufficient context for troubleshooting

What I do

1. Log Level Management

  • Define appropriate log levels (DEBUG, INFO, WARN, ERROR, FATAL)
  • Configure level filtering per environment (development, staging, production)
  • Implement dynamic level adjustment without application restarts
  • Establish level usage guidelines for different types of information
  • Create level-based alerting thresholds for operational monitoring

2. Structured Logging Implementation

  • Design log schema with consistent field naming and types
  • Implement structured formats (JSON, key-value pairs, structured text)
  • Include mandatory context fields (timestamp, service, trace_id, user_id, etc.)
  • Handle nested structures and arrays appropriately in logs
  • Ensure PII (Personally Identifiable Information) compliance in log content

3. Context Propagation

  • Implement correlation IDs for request tracing across services
  • Propagate context through async operations (queues, background jobs)
  • Maintain user/session context throughout request lifecycle
  • Include business context (order_id, transaction_id, etc.) in logs
  • Handle context in distributed systems with proper header propagation

4. Log Content Best Practices

  • Include sufficient context for debugging without external systems
  • Balance detail with noise - log enough but not too much
  • Use consistent message formats across the codebase
  • Log before and after significant operations
  • Include error details (stack traces, error codes, recovery suggestions)
  • Avoid logging secrets, passwords, or sensitive data

5. Environment-Specific Configuration

  • Development logging - Verbose, human-readable, local file output
  • Staging logging - Balanced detail, structured format, aggregation
  • Production logging - Minimal noise, structured only, remote aggregation
  • Debug mode logging - Temporary increased verbosity for troubleshooting

Logging Principles

The 5 Ws of Logging

  1. WHO - Which user/service/process generated the log?
  2. WHAT - What action/event is being logged?
  3. WHEN - Precise timestamp with timezone information
  4. WHERE - Which component/function/file generated the log?
  5. WHY - What is the significance/severity of the logged event?

Structured Logging Fields

{
  "timestamp": "2026-02-26T18:00:00Z",
  "level": "ERROR",
  "service": "payment-service",
  "component": "process_payment",
  "trace_id": "abc123-def456",
  "span_id": "def456",
  "user_id": "user-789",
  "session_id": "session-xyz",
  "request_id": "req-123456",
  "message": "Payment processing failed",
  "error_code": "PAYMENT_GATEWAY_TIMEOUT",
  "error_details": "Gateway response timeout after 5000ms",
  "stack_trace": "...",
  "context": {
    "order_id": "ord-987654",
    "amount": 99.99,
    "currency": "USD"
  },
  "duration_ms": 5123,
  "environment": "production",
  "hostname": "payment-host-01",
  "version": "1.2.3"
}

Log Level Guidelines

  • DEBUG: Detailed information for debugging, typically disabled in production
  • INFO: Routine information about normal operation
  • WARN: Warning conditions that might require attention but don't indicate failure
  • ERROR: Error conditions that indicate failure of a specific operation
  • FATAL: Critical errors that cause application termination

Examples

# Configure logging levels by environment
npm run logging:configure -- --environment production --level WARN

# Analyze current logging implementation
npm run logging:analyze -- --path src/ --output logging-report.json

# Generate structured logging configuration
npm run logging:generate-config -- --format json --output logging-config.json

# Test logging output
npm run logging:test -- --scenario "payment-failure" --levels "ERROR,WARN"

# Validate logging best practices
npm run logging:validate -- --strict --check-pii --check-context

Output format

Logging Configuration Template:

logging:
  level: 
    root: INFO
    specific:
      "com.example.service": DEBUG
      "org.springframework": WARN
  
  format:
    type: json
    timestamp_format: "ISO8601"
    include_fields:
      - timestamp
      - level  
      - service
      - component
      - trace_id
      - message
    
  context:
    auto_included:
      - thread_id
      - hostname
      - service_version
    propagated:
      - trace_id
      - user_id
      - request_id
    
  appenders:
    - type: console
      level: INFO
    - type: file
      path: /var/log/app.log
      level: WARN
    - type: http
      endpoint: https://logs.example.com
      level: ERROR

Logging Best Practices Report:

Logging Fundamentals Assessment
───────────────────────────────
Application: payment-service
Assessment Date: 2026-02-26
Score: 78/100

Strengths:
✅ Structured logging implemented (JSON format)
✅ Correlation IDs propagated across services
✅ Log levels appropriately configured
✅ PII filtering in place

Areas for Improvement:
⚠️  Insufficient context in error logs (missing user_id in 45% of error logs)
⚠️  Debug logs enabled in production for some components
⚠️  Inconsistent timestamp formats across services
⚠️  Missing business context in 30% of transaction logs

Critical Issues:
❌ No log sampling for high-volume debug logs
❌ Secret leakage detected in 2 log patterns
❌ Incomplete error context for 15% of database errors

Recommendations:
1. Implement consistent context inclusion middleware
2. Configure log sampling for debug-level logs
3. Add business context to all transaction logs
4. Update secret detection patterns
5. Standardize timestamp format across services

Implementation Priority:
- High: Fix secret leakage immediately
- Medium: Add missing context fields
- Low: Standardize timestamp format

Notes

  • Structured logging is essential for modern log analysis and observability
  • Context is more important than message content - ensure logs can be correlated
  • Log levels should reflect operational importance, not developer convenience
  • Consider log volume - too many logs can overwhelm systems and teams
  • Test logging in production-like environments - logging behavior can differ
  • Monitor your logging - ensure logs are being captured, processed, and stored
  • Regularly review and update logging practices as systems evolve
  • Balance human readability with machine parsability in log formats
  • Document logging standards and ensure team adherence
  • Consider the cost of logging - storage, processing, and analysis have expenses

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.

General

adversarial-thinking

No summary provided by upstream source.

Repository SourceNeeds Review
General

redteam

No summary provided by upstream source.

Repository SourceNeeds Review
Research

test-gap-analysis

No summary provided by upstream source.

Repository SourceNeeds Review