Logger Helper
v1.0.0Static and event-driven logging utility that supports multiple log levels and real-time log listeners via a onLog() API.
It allows you to intercept, modify, or cancel logs and even react to them (e.g., for telemetry or debugging) in a centralized way.
Usage
import { LoggerHelper, LoggerType, type LoggerPayload } from '@oardi/ts-utils';
// simple logging
LoggerHelper.info('App started', { env: 'dev' });
LoggerHelper.warn('Low disk space', { freeBytes: 1024 });
// turning off all logging
LoggerHelper.setEnabled(false);
LoggerHelper.info('this will not be printed');
LoggerHelper.setEnabled(true);
Basic Observer
const unsubscribe = LoggerHelper.onLog(payload => {
// payload: { type, args, timestamp }
// z. B. send telemetry
fetch('/api/log', { method: 'POST', body: JSON.stringify(payload) }).catch(() => {});
});
// unsubscribe from onLog
unsubscribe();
Filter Logs
// prevent debug messages from reaching console
LoggerHelper.onLog(p => {
if (p.type === 'debug') return false;
});
A false return value only vetoes the console call. Every registered listener still receives the
payload.
Quick Reference
// Log Levels
LoggerHelper.log(...args: unknown[]): void;
LoggerHelper.info(...args: unknown[]): void;
LoggerHelper.warn(...args: unknown[]): void;
LoggerHelper.debug(...args: unknown[]): void;
LoggerHelper.error(...args: unknown[]): void;
// Listener
const off = LoggerHelper.onLog((payload) => { /* ... */ }, /* once? */ false);
// unsubscribe
off();
Payload
type LoggerPayload = {
type: LoggerType; // 'log' | 'info' | 'warn' | 'debug' | 'error'
args: unknown[]; // original Log-Argument
timestamp: string; // ISO timestamp
};
Previous:Helpers
← LocalStorage HelperNext:Helpers
Screen Helper →