Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unlight/nestolog
Logger for NestJS, implements `LoggerService`
https://github.com/unlight/nestolog
logger logging nestjs nestjs-logger nestolog ololog
Last synced: 22 days ago
JSON representation
Logger for NestJS, implements `LoggerService`
- Host: GitHub
- URL: https://github.com/unlight/nestolog
- Owner: unlight
- Created: 2021-01-22T08:05:44.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-08T12:43:21.000Z (about 1 month ago)
- Last Synced: 2024-12-22T21:03:06.096Z (26 days ago)
- Topics: logger, logging, nestjs, nestjs-logger, nestolog, ololog
- Language: TypeScript
- Homepage:
- Size: 546 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# nestolog
Logger for NestJS, implements `LoggerService`. Based on [ololog](https://github.com/xpl/ololog)
## Install
```sh
npm install --save-dev nestolog```
## Usage
```ts
import { Logger } from '@nestjs/common';
import { NestologModule } from 'nestolog';@Module({
imports: [NestologModule.forRoot(options)],
})
export class AppModule {}
```## Use as the main Nest Logger
```ts
const app = await NestFactory.create(AppModule);
app.useLogger(app.get(NestoLogger));
```It's not recommended to use this logger in production, since it's relative slow.
### Options
[Ololog configuration](https://github.com/xpl/ololog#configuration) and plus custom configuration:
```ts
/**
* Format date using https://github.com/lukeed/tinydate
*/
timeFormat: undefined as undefined | string,
/**
* Limit of context message.
*/
contextLimit: 13,
/**
* Word wrap width for message.
* If 0 (default) tries to auto detect.
* If -1 disable
*/
messageColumnWidth: 0,
/**
* Alternative locate. Default ololog's locate add callee info to the last non-empty string
* Custom locate add callee info on next new line.
*/
customLocate: undefined as undefined | boolean | typeof customLocateDefault,
/**
* Place of callee info.
* 'bottom' - next on new line (default)
* 'column' - between tag and message columnized
* 'context' - in context column if context is empty
*/
customLocatePosition: 'bottom' as 'bottom' | 'column' | 'context',
/**
* Limit callee info length in case of customLocatePosition = 'column'
*/
customLocateColumnLimit: 30,
```## Create instance by static method
```ts
const app = await NestFactory.create(AppModule, {
logger: NestoLogger.create(),
});
```## Development
- ololog pipeline: stringify trim lines concat indent tag time locate join render returnValue
## Resources
### Context Candidates
- https://github.com/nestjs-steroids/async-context
- https://github.com/yort-feng/http-context-nodejs
- https://github.com/abonifacio/nestjs-request-context
- https://github.com/medibloc/nestjs-request-context## License
[MIT License](https://opensource.org/licenses/MIT) (c) 2023