@thymelab/logfx
v2.15.6
Published
Elegant console logger for Node.js — levels, tags, pluggable reporters, with a browser bundle for SSR/SPA symmetry
Downloads
573
Maintainers
Readme
@thymelab/logfx
Elegant console logger for Node.js. Levels, tags, pluggable reporters, sane defaults. A browser bundle ships alongside so the same import works under SSR or in a Vite/webpack frontend bundle.
Install
npm i @thymelab/logfxUsage
import logfx from '@thymelab/logfx';
logfx.info('booting up');
logfx.success('migration applied');
logfx.warn('cache miss', { key: 'feed:eth-usd' });
logfx.error('rpc failed', new Error('timeout'));Methods
logfx.fatal(...args)
logfx.error(...args)
logfx.warn(...args)
logfx.log(...args)
logfx.info(...args)
logfx.start(...args)
logfx.success(...args)
logfx.ready(...args)
logfx.debug(...args)
logfx.trace(...args)Each method takes any number of arguments — strings, objects, errors — and forwards them to the active reporters.
Tagged child loggers
const apiLog = logfx.withTag('api');
apiLog.info('GET /healthz'); // [api] GET /healthzLevels
| level | numeric | methods enabled | |---|---|---| | silent | -Infinity | — | | fatal | 0 | fatal, error | | error | 0 | fatal, error | | warn | 1 | …, warn | | log | 2 | …, log | | info | 3 | …, info, success, ready, start | | debug | 4 | …, debug | | trace | 5 | …, trace | | verbose | Infinity | everything |
Set globally:
logfx.level = 4; // debug and belowReporters
Default reporter: fancy in TTY environments, basic otherwise. Replace or stack:
import logfx, { JSONReporter } from '@thymelab/logfx';
logfx.setReporters([new JSONReporter()]);Browser bundle (optional)
When picked up by a frontend bundler via the browser field, logfx swaps the Node reporters for a console.log styled reporter that falls back gracefully where the DevTools console does not support CSS in formatters.
Mocking in tests
logfx.mockTypes(() => jest.fn());Then expect(logfx.info).toHaveBeenCalledWith(...).
License
MIT.
