Skip to main content

Logging

The BookWorm application implements comprehensive logging using .NET's built-in logging framework enhanced with custom extensions and structured logging capabilities.

Logging Architecture

Framework Integration

  • Microsoft.Extensions.Logging - Core logging abstraction
  • Microsoft.Extensions.Compliance.Redaction - Sensitive data redaction
  • Custom Logging Extensions - Enhanced logging capabilities in BookWorm.Chassis

Key Features

Structured Logging

  • JSON-formatted log entries for better searchability and parsing
  • Consistent log structure across all microservices
  • Contextual information including correlation IDs and user context

Log Levels

  • Trace - Detailed execution flow for debugging
  • Debug - Development-time diagnostic information
  • Information - General application flow and business events
  • Warning - Potentially harmful situations that don't stop execution
  • Error - Error events that allow the application to continue
  • Critical - Serious errors that may cause application termination

Sensitive Data Protection

  • Automatic redaction of personally identifiable information (PII)
  • Configurable redaction patterns for different data types
  • Compliance with data protection regulations (GDPR, CCPA)

Integration with OpenTelemetry

Trace Correlation

  • Automatic correlation between logs and distributed traces
  • Span context injection for cross-service request tracking
  • Activity-based logging for request lifecycle monitoring

Log Forwarding

  • Integration with OpenTelemetry logging pipeline
  • Export to external systems (Grafana, Elastic Stack, Azure Monitor)
  • Centralized log aggregation for distributed system monitoring

Best Practices

Logging Guidelines

  • Use structured logging with consistent property names
  • Avoid logging sensitive information in production
  • Include relevant context (user ID, correlation ID, operation)
  • Use appropriate log levels based on event severity
  • Implement log sampling for high-volume scenarios

Performance Considerations

  • Asynchronous logging to prevent blocking operations
  • Log level filtering based on environment configuration
  • Efficient serialization of log objects
  • Batching and buffering for high-throughput scenarios