xPulse
πŸ‡¬πŸ‡§ EN

API

init()

await logger.init();

Loads config and .env.

create(module)

const log = logger.create('signaling');
log.info('server started');

startup({ name, port })

logger.startup({ name: 'xPulse Server', port: 3000 });

formatIp(ip)

const safe = logger.formatIp('192.168.1.42');

Client variant (`@xpulse/logger/client`)

import logger from '@xpulse/logger/client';
await logger.init();
const log = logger.create('presence');
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).

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:

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)
en/api.md 2026-04-10