@litert/logger
Version:
A logs-recorder for LiteRT framework.
101 lines (66 loc) • 2.71 kB
Markdown
# LiteRT/Logger
[](https://www.npmjs.com/package/@litert/logger "Stable Version")
[](https://github.com/litert/logger/blob/master/LICENSE)
[](https://nodejs.org/dist/latest-v8.x/)
[](https://github.com/litert/logger.js/issues)
[](https://github.com/litert/logger.js/releases "Stable Release")
A logs writer for LiteRT framework.
## Features
- [x] Log stack trace.
- [x] Enable/Disable log levels.
- [x] Custom levels.
- [x] Custom formats.
- [x] Custom output drivers.
## Requirement
- TypeScript v5.0.0 (or newer)
- Node.js v18.0.0 (or newer)
## Installation
Install by NPM:
```sh
npm i @litert/logger --save
```
## Quick Start
Simple usage:
```ts
// The imported module is a LoggerFactory singleton object, so you can use it directly.
import LoggerFactory from "@litert/logger";
const logger = LoggerFactory.createLogger('Demo');
logger.info('Hello, world!');
logger.warning('Hello, world!');
// Now, just disable a level, and it will not be printed.
logger.setLevelOptions({ levels: ['error'], enabled: false });
logger.error('Hello, world! (WILL NOT BE PRINTED)');
// let's turn on the stack trace, print 2 lines of stack trace.
//
// without specifying levels, all levels will be affected.
logger.setLevelOptions({ traceDepth: 2 });
logger.notice('Hello, world!');
```
Use custom log formatter:
```ts
import LoggerFactory from "@litert/logger";
LoggerFactory.setLevelOptions({ enabled: true });
const logger = LoggerFactory.createLogger('Demo');
logger.setLevelOptions({
formatter: function(log, subj, lv, dt, traces): string {
if (traces?.length) {
return `${new Date(dt).toISOString()} - ${subj} - ${lv} - ${log}
${traces.join('\n ')}
`;
}
return `${new Date(dt).toISOString()} - ${subj} - ${lv} - ${log}`;
}
});
logger.info('Hello, world!');
logger.warning('Hello, world!');
logger.setLevelOptions({ traceDepth: 2 });
logger.error('Hello, world!');
```
More Examples:
- [Quick Start](./src/examples/quick-start.ts)
- [Custom log levels](./src/examples/custom-levels.ts)
- [Custom log formatter](./src/examples/custom-formatter.ts)
- [Custom log output driver](./src/examples/custom-driver.ts)
- [Using factory](./src/examples/using-factory.ts)
## License
This library is published under [Apache-2.0](./LICENSE) license.