API
init()
Loads config and .env.
create(module)
1 const log = logger.create ('signaling' );2 log.info ('server started' );
startup({ name, port })
1 logger.startup ({ name : 'xPulse Server' , port : 3000 });
1 const safe = logger.formatIp ('192.168.1.42' );
Client variant (`@xpulse/logger/client`)
1 import logger from '@xpulse/logger/client' ;2 3 await logger.init ();4 const log = logger.create ('presence' );5 log.debug ('connection established' , { peerId : 'abc' });
logger.init()
Reads config (if @xpulse/config is available). Sets level and enabled. Optional β in the browser @xpulse/config may be absent, in which case defaults apply (level: 'info').
logger.setLevel(level)
Sets the log level at runtime. Useful when the level is known after an API call (e.g. after /health).
1 logger.setLevel ('debug' );
Valid values: 'debug' Β· 'info' Β· 'warn' Β· 'error' Β· 'off'
logger.create(module)
Returns a module logger β identical to the server variant.
HTML Injection (Server)
When LOG=true and @xpulse/router is installed, the logger registers:
/_logger/client.js
/_logger/levels.js
For HTML responses (Content-Type: text/html) a <script type="module">
with the logger client is injected before sending the response.
Environment variables
Variable
Description
LOG
true/false β enable/disable logging (file and console)
LOG_CONSOLE_LEVEL
Minimum level for console output (e.g. warn) β file log unaffected
DEBUG
true β level debug, full IPs in logs
Events
Event
Payload
When
logger:init
{ level, enabled }
Init begins (server + client)
logger:ready
{ level, enabled, sink }
Init complete (server + client)
logger:write
{ level, module, message, data, timestamp }
Each log entry (server only)