logger refactor

This commit is contained in:
Jan Prochazka
2023-01-28 09:17:57 +01:00
parent dbcc732688
commit a43522752c
3 changed files with 129 additions and 132 deletions

View File

@@ -31,7 +31,7 @@ function configureLogger() {
setLoggerName('main'); setLoggerName('main');
const logger = createPinoLikeLogger({ const logger = createPinoLikeLogger({
pid: process.pid, base: { pid: process.pid },
targets: [ targets: [
{ {
type: 'console', type: 'console',

View File

@@ -3,7 +3,7 @@ import { createPinoLikeLogger, ILogger } from './pinomin';
let _logger: ILogger; let _logger: ILogger;
let _name: string = null; let _name: string = null;
const defaultLogger: ILogger = createPinoLikeLogger({ const defaultLogger: ILogger = createPinoLikeLogger({
pid: global?.process?.pid, base: { pid: global?.process?.pid },
targets: [{ type: 'console', level: 'info' }], targets: [{ type: 'console', level: 'info' }],
}); });

View File

@@ -22,14 +22,14 @@ export interface ILogger {
} }
export interface ILogRecord { export interface ILogRecord {
time: number;
level: number; level: number;
msg: string; msg: string;
pid: number; pid?: number;
time: number;
} }
class PinoLikeLogger implements ILogger { class PinoLikeLogger implements ILogger {
constructor(public config: ILogConfig, public baseProps: {} = {}) {} constructor(public config: ILogConfig) {}
trace(msg: string); trace(msg: string);
trace(data: {} | Error, msg: string); trace(data: {} | Error, msg: string);
@@ -65,19 +65,17 @@ export interface ILogger {
packRecord(level: number, data, msg?): ILogRecord { packRecord(level: number, data, msg?): ILogRecord {
if (msg) { if (msg) {
return { return {
...this.baseProps, ...this.config.base,
...data, ...data,
level, level,
msg, msg,
pid: this.config.pid,
time: new Date().getTime(), time: new Date().getTime(),
}; };
} }
return { return {
...this.baseProps, ...this.config.base,
level, level,
msg: data, msg: data,
pid: this.config.pid,
time: new Date().getTime(), time: new Date().getTime(),
}; };
} }
@@ -99,9 +97,9 @@ export interface ILogger {
} }
child(childProps: {}): ILogger { child(childProps: {}): ILogger {
return new PinoLikeLogger(this.config, { return new PinoLikeLogger({
...this.baseProps, ...this.config,
...childProps, base: { ...this.config.base, ...childProps },
}); });
} }
} }
@@ -131,11 +129,10 @@ export interface ILogger {
} }
interface ILogConfig { interface ILogConfig {
pid?: number; base: {};
targets: ILogTargetConfig[]; targets: ILogTargetConfig[];
} }
export function createPinoLikeLogger(config: ILogConfig): ILogger { export function createPinoLikeLogger(config: ILogConfig): ILogger {
return new PinoLikeLogger(config); return new PinoLikeLogger(config);
} }