npm package: @serve.zone/platformservice
Description: A multifaceted platform service handling mail, SMS, letter delivery, and AI services.
Author: Task Venture Capital GmbH
Latest version: 2.11.1

# Smartlog Improvement Plan

## Overview

This document outlines a plan for enhancing the `@push.rocks/smartlog` module to incorporate the advanced features currently implemented in the custom `EnhancedLogger` wrapper. By moving these features directly into `smartlog`, we can eliminate the need for wrapper classes while providing a more comprehensive logging solution.

## Current Limitations in Smartlog

- Limited context management (no hierarchical contexts)
- No correlation ID tracking for distributed tracing
- No built-in filtering or log level management
- No log sampling capabilities
- No middleware for HTTP request/response logging
- No timing utilities for performance tracking
- No child logger functionality with context inheritance

## Proposed Enhancements

### 1. Context Management

- Add hierarchical context support
- Implement methods for manipulating context:
  - `setContext(context, overwrite = false)`
  - `addToContext(key, value)`
  - `removeFromContext(key)`

### 2. Correlation ID Tracking

- Add correlation ID support for distributed tracing
- Implement methods for correlation management:
  - `setCorrelationId(id = null)`
  - `getCorrelationId()`
  - `clearCorrelationId()`

### 3. Log Filtering

- Implement configurable log filtering based on:
  - Minimum log level
  - Pattern-based exclusion rules
  - Custom filtering functions

### 4. Log Sampling

- Add probabilistic log sampling for high-volume environments
- Support for enforcing critical logs (e.g., errors) regardless of sampling

### 5. Child Loggers

- Support creating child loggers with inherited context
- Allow context overrides in child loggers

### 6. Timing Utilities

- Add methods for timing operations:
  - `logTimed(level, message, fn, context)`
  - Support for both async and sync operations

### 7. HTTP Request Logging

- Add middleware for Express/Fastify/other HTTP frameworks
- Auto-capture request/response data
- Auto-propagate correlation IDs

### 8. Log Standardization

- Ensure consistent output format
- Add standard fields like timestamp, correlation ID
- Support for custom formatters

## Implementation Plan

1. **Core Enhancements**
   - Implement context management
   - Add correlation ID tracking
   - Develop filtering and sampling capabilities

2. **Extended Features**
   - Build child logger functionality
   - Create timing utility methods
   - Implement HTTP middleware

3. **Compatibility**
   - Ensure backward compatibility
   - Provide migration guide
   - Add TypeScript declarations

4. **Documentation**
   - Update README with new features
   - Add examples for each feature
   - Document best practices

## Migration Path

After implementing these enhancements to `smartlog`, the migration would involve:

1. Update to latest `smartlog` version
2. Replace `EnhancedLogger` instances with `smartlog.Smartlog`
3. Update configuration to use new capabilities
4. Replace middleware with `smartlog`'s built-in solutions

## Benefits

- Simplified dependency tree
- Better maintainability with single logging solution
- Improved performance with native implementation
- Enhanced type safety through TypeScript
- Standardized logging across projects