Inhaltsverzeichnis
Runbook: Check Logs
Duration: ~10 minutes
Role: Gateway Operator
Frequency: Daily / On issues
Analysis of Gateway logs for error diagnosis and monitoring.
Workflow
flowchart TD
A[Open logs] --> B[Filter for ERROR]
B --> C{Errors found?}
C -->|Yes| D[Analyze error]
C -->|No| E[Filter for WARN]
D --> F[Take action]
E --> G{Warnings?}
G -->|Yes| H[Document]
G -->|No| I[OK - Done]
F --> I
H --> I
style I fill:#e8f5e9
style D fill:#ffebee
style H fill:#fff3e0
1. Log Locations
| Platform | Path |
| ———- | —— |
| Windows (Console) | Console output |
| Windows (Service) | %GATEWAY_ROOT%\logs\ or Event Log |
| Linux (systemd) | journalctl -u data-gateway |
| Docker | docker logs gateway |
2. Show Recent Logs
Windows (File):
# Last 50 lines Get-Content -Path "%GATEWAY_ROOT%\logs\gateway.log" -Tail 50 # Live tail Get-Content -Path "%GATEWAY_ROOT%\logs\gateway.log" -Wait -Tail 10
Linux (systemd):
# Last 100 lines journalctl -u data-gateway -n 100 --no-pager # Live tail journalctl -u data-gateway -f
Docker:
# Last 100 lines docker logs --tail 100 gateway # Live tail docker logs -f gateway
3. Filter for Errors
Windows:
# ERROR entries Select-String -Path "%GATEWAY_ROOT%\logs\*.log" -Pattern "ERROR|Exception" # Today Get-Content "%GATEWAY_ROOT%\logs\gateway.log" | Where-Object { $_ -match "ERROR" -and $_ -match (Get-Date -Format "yyyy-MM-dd") }
Linux:
# ERROR entries journalctl -u data-gateway --since today | grep -E "ERROR|Exception" # Or in file grep -E "ERROR|Exception" /var/log/gateway/gateway.log
4. Common Log Patterns
Successful request:
[INFO] GET /api/v1/dsn/demo/tables 200 45ms
Error:
[ERROR] GET /api/v1/dsn/invalid/tables 404 Database 'invalid' not found [ERROR] POST /api/v1/dsn/demo/query 500 SqlException: Invalid syntax
Warning:
[WARN] Slow query detected: 2340ms for GET /api/v1/dsn/production/tables/BigTable
5. Adjust Log Level
In appsettings.json:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "WvdS.WebAPI.Data.Gateway": "Debug" } } }
| Level | Usage |
| ——- | ——- |
Trace | Very detailed (development) |
Debug | Debugging information |
Information | Normal operations (default) |
Warning | Potential problems |
Error | Errors that were handled |
Critical | Severe errors, crash |
6. Checklist
| # | Check | Done |
| — | ——- | —— |
| 1 | ERROR entries reviewed | [ ] |
| 2 | WARN entries reviewed | [ ] |
| 3 | Slow queries noted | [ ] |
| 4 | Errors documented/reported | [ ] |
| 5 | Log rotation active | [ ] |
Troubleshooting
| Log Message | Cause | Solution |
| ————- | ——- | ———- |
Database not found | DSN not configured | Check appsettings.json |
Connection refused | DB not reachable | Check firewall/network |
SqlException: Login failed | Wrong credentials | Check password |
OutOfMemoryException | Query too large | Set $top limit |
Timeout expired | DB too slow | Optimize index |
Set Up Log Rotation
Serilog (appsettings.json):
{ "Serilog": { "WriteTo": [ { "Name": "File", "Args": { "path": "logs/gateway-.log", "rollingInterval": "Day", "retainedFileCountLimit": 30 } } ] } }
Related Runbooks
- Health Check - Availability check
- Start Server - On crash
- Alerting - Automatic notification
« <- Health Check | -> Operator Overview »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional
Zuletzt geändert: on 2026/01/29 at 11:33 PM