76 lines
1.5 KiB
Markdown
76 lines
1.5 KiB
Markdown
# Logging Architecture Specification
|
|
|
|
## Overview
|
|
|
|
Centralized logging architecture for the explorer platform.
|
|
|
|
## Log Aggregation Strategy
|
|
|
|
**Solution**: ELK Stack (Elasticsearch, Logstash, Kibana) or Loki + Grafana
|
|
|
|
**Flow**:
|
|
1. Services emit logs
|
|
2. Log collectors aggregate logs
|
|
3. Logs stored in central store
|
|
4. Dashboards and queries via UI
|
|
|
|
## Log Levels and Categorization
|
|
|
|
### Log Levels
|
|
|
|
- **DEBUG**: Detailed debugging information
|
|
- **INFO**: General informational messages
|
|
- **WARN**: Warning messages
|
|
- **ERROR**: Error messages
|
|
- **FATAL**: Critical errors
|
|
|
|
### Categories
|
|
|
|
**Application Logs**: Business logic, API requests
|
|
**Access Logs**: HTTP requests, authentication
|
|
**System Logs**: Infrastructure, system events
|
|
**Audit Logs**: Security events, compliance
|
|
|
|
## Structured Logging Format
|
|
|
|
### Log Format
|
|
|
|
```json
|
|
{
|
|
"timestamp": "2024-01-01T00:00:00Z",
|
|
"level": "INFO",
|
|
"service": "explorer-api",
|
|
"message": "Request processed",
|
|
"request_id": "uuid",
|
|
"user_id": "uuid",
|
|
"chain_id": 138,
|
|
"method": "GET",
|
|
"path": "/api/v1/blocks",
|
|
"status_code": 200,
|
|
"duration_ms": 45,
|
|
"metadata": {}
|
|
}
|
|
```
|
|
|
|
## Log Retention Policies
|
|
|
|
**Development**: 7 days
|
|
**Staging**: 30 days
|
|
**Production**: 90 days (hot), 1 year (cold archive)
|
|
|
|
## PII Sanitization in Logs
|
|
|
|
**Strategy**: Remove PII before logging
|
|
**Fields to Sanitize**:
|
|
- Email addresses
|
|
- Personal names
|
|
- Addresses
|
|
- API keys (partial masking)
|
|
|
|
**Implementation**: Log sanitization middleware
|
|
|
|
## References
|
|
|
|
- Metrics & Monitoring: See `metrics-monitoring.md`
|
|
|