4.0.3 • Published 6 months ago
@matrixai/logger v4.0.3
js-logger
This library provides a JavaScript/TypeScript logger inspired by Python's logger.
- Simple logging with default handlers supporting
console.log,console.error, andprocess.stderr. - Fast, logging level checks or log filters are applied before log records are created
- Complex log records properties ssupport lazy evaluation, so they evaluated only when they need to be rendered
- Flexible composition of loggers, handlers and formatters
- Custom formatting using template literals
- Supports structured logging through a JSON formatter
- Supports hierarchical logging through parent-child logger graph
- CI/CD tests on Linux, MacOS and Windows
- Zero runtime dependencies!
- Comprehensive continuous benchmarks in CI/CD
Installation
npm install --save @matrixai/loggerUsage
import Logger, { LogLevel, StreamHandler, formatting } from '@matrixai/logger';
const logger = new Logger('root', LogLevel.INFO, [
new StreamHandler(
formatting.format`${formatting.date}:${formatting.level}:${formatting.key}:${formatting.msg}:${formatting.data}`,
),
]);
logger.debug('Hello world', { a: { b: [123, 456] } });
logger.info('Hello world', { 123: { b: [123, 456] } });
logger.warn('Hello world', { lazy: () => 'string' });
logger.error('Hello world', formatting.format`my custom format`);
const loggerChild = logger.getChild('child');
loggerChild.info(
'Hello world',
{ 123: { b: [123, 456] } },
formatting.format`${formatting.keys}:${formatting.msg}:${formatting.data}`,
);There's lots more options available in the source code. See the docs and see the source code for more details.
Development
Run nix-shell, and once you're inside, you can use:
# install (or reinstall packages from package.json)
npm install
# build the dist
npm run build
# run the repl (this allows you to import from ./src)
npm run tsx
# run the tests
npm run test
# lint the source code
npm run lint
# automatically fix the source
npm run lintfixDocs Generation
npm run docsSee the docs at: https://matrixai.github.io/js-logger/
Publishing
Publishing is handled automatically by the staging pipeline.
Prerelease:
# npm login
npm version prepatch --preid alpha # premajor/preminor/prepatch
git push --follow-tagsRelease:
# npm login
npm version patch # major/minor/patch
git push --follow-tagsManually:
# npm login
npm version patch # major/minor/patch
npm run build
npm publish --access public
git push
git push --tags4.0.4-alpha.0
6 months ago
4.0.4-alpha.5
6 months ago
4.0.4-alpha.1
6 months ago
4.0.4-alpha.2
6 months ago
4.0.4-alpha.3
6 months ago
4.0.4-alpha.4
6 months ago
4.0.3
9 months ago
3.1.3
2 years ago
3.1.2
2 years ago
3.1.1
2 years ago
4.0.1
2 years ago
4.0.2
2 years ago
3.1.0
3 years ago
2.3.0
3 years ago
2.2.1
3 years ago
2.2.0
3 years ago
2.2.2
3 years ago
3.0.0
3 years ago
2.1.1
3 years ago
2.1.0
4 years ago
2.0.1
5 years ago
2.0.0
5 years ago
1.0.4
5 years ago