Level einmalig beim Start gesetzt (Node, kein Hot-Reload nötig)
Rotating File Log: max 10 MB, 5 Dateien
Pfad: var/log/{NODE_ENV}.log (konfigurierbar)
Dual Output: Datei + Console gleichzeitig
IP-Anonymisierung: standardmäßig aktiv, nur bei DEBUG=true vollständige IPs
IPv4: letztes Oktett → 0
IPv4-mapped IPv6: letztes Oktett → 0
IPv6: letzte Gruppe → 0
DSGVO: bei LOG=false keine personenbezogenen Daten
Zusätzliche Exports (server)
1
import logger from'@xpulse/logger/server';
2
3
logger.formatIp(ip); // anonymisiert oder vollständig je nach DEBUG
4
logger.startup({ port }); // Startup-Zusammenfassung loggen
Log-Format (server)
1
[2026-03-09T10:23:45.123Z] (info ) xPulse Web gestartet | ENV=production | PORT=3000
2
[2026-03-09T10:23:46.001Z] (info ) GET /privacy/ 200 12ms
3
[2026-03-09T10:23:47.220Z] (warn ) health check failed | source=chat
Paket-Struktur
1
@xpulse/logger/
2
client.js ← Browser-Variante
3
server.js ← Node-Variante
4
levels.js ← gemeinsame Level-Konstanten (intern)
5
README.md
6
package.json
Debug Integration
Wenn @xpulse/debug als devDependency installiert ist, stellt @xpulse/logger
automatisch einen DataCollector bereit. @xpulse/debug discovert ihn via
node_modules/@xpulse/logger/src/datacollectors/ – keine Konfiguration nötig.
1
"optionalDependencies":{
2
"@xpulse/debug":"^1.0.0"
3
}
Der LoggerCollector (name: 'logger', icon: '📝') zeigt im Web Profiler:
Log Lines (logger-lines): alle Log-Einträge dieses Requests, neueste oben –
formatiert als [timestamp] (level) [module] message | data
Log Files (table): Snapshot der Dateien unter var/log/ mit Dateigröße