@blastz/logger v0.10.0
Logger
Node.js logger based on winston.
Install
$ npm install @blastz/loggerUsage
import { logger, LoggerLevel, createConsoleTransport } from "@blastz/logger";
logger.clear().add(createConsoleTransport());
logger.info("hello world!");Logging levels
The logger support six loggin levels
const levels = {
fatal: 0,
error: 1,
warn: 2,
info: 3,
debug: 4,
trace: 5,
};Console transport
Call createConsoleTransport method to create console transport.
Console transport will output logs with such format
2021-05-14T06:30:02.421Z INFO
{
message: 'test',
hostname: 'OMEN',
pid: 32684
}File transport
Call createFileTransport to create file transport
logger
.clear()
.add(createFileTransport({ level: LoggerLevel.Trace }))
.add(createFileTransport({ level: LoggerLevel.Error }));It will create two folds error and trace
- log
- error
- trace
The error fold will include loggin files that logging level is above error, and trace fold
will include loggin files above trace.
File transport will log with json format
{"message":"trace","level":"trace","hostname":"OMEN","pid":762,"timestamp":"2021-05-14T06:51:59.894Z"}All options in winston-daily-rotate-file are supported by function options.
Custom metadatas
When you need some custom metadatas, like trace id. you can pass AsyncLocalStorage to the logger context.
const context = new AsyncLocalStorage<Record<string, unknown>>();
logger.context = context;
logger.clear().add(createConsoleTransport());
store.run({ traceId: "xxx" }, () => {
logger.info("test");
});The console ouput will include traceId property.
Options
Check all transport options in the src/interfaces/${transportName}.interface.ts
License
Licensed under MIT