The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/server/lib/logger/Logger.ts

103 lines
2.2 KiB

import type { P } from 'pino';
import { getPino } from './getPino';
import { logLevel, LogLevelSetting } from './logLevel';
const getLevel = (level: LogLevelSetting): string => {
switch (level) {
case '0': return 'warn';
case '1': return 'info';
case '2': return 'debug';
default: return 'warn';
}
};
export class Logger {
readonly logger: P.Logger;
constructor(loggerLabel: string) {
this.logger = getPino(loggerLabel);
logLevel.on('changed', (level) => {
this.logger.level = getLevel(level);
});
}
section(name: string): P.Logger {
const child = this.logger.child({ section: name });
logLevel.on('changed', (level) => {
child.level = getLevel(level);
});
return child;
}
level(newLevel: string): void {
this.logger.level = newLevel;
}
log<T extends object>(obj: T, ...args: any[]): void;
log(msg: string, ...args: any[]): void;
log(msg: string, ...args: any[]): void {
this.logger.info(msg, ...args);
}
debug<T extends object>(obj: T, ...args: any[]): void;
debug(msg: string, ...args: any[]): void;
debug(msg: string, ...args: any[]): void {
this.logger.debug(msg, ...args);
}
info<T extends object>(obj: T, ...args: any[]): void;
info(msg: string, ...args: any[]): void;
info(msg: string, ...args: any[]): void {
this.logger.info(msg, ...args);
}
success<T extends object>(obj: T, ...args: any[]): void;
success(msg: string, ...args: any[]): void;
success(msg: string, ...args: any[]): void {
this.logger.info(msg, ...args);
}
warn<T extends object>(obj: T, ...args: any[]): void;
warn(msg: string, ...args: any[]): void;
warn(msg: string, ...args: any[]): void {
this.logger.warn(msg, ...args);
}
error<T extends object>(obj: T, ...args: any[]): void;
error(msg: string, ...args: any[]): void;
error(msg: string, ...args: any[]): void {
this.logger.error(msg, ...args);
}
method<T extends object>(obj: T, ...args: any[]): void;
method(msg: string, ...args: any[]): void;
method(msg: string, ...args: any[]): void {
this.logger.method(msg, ...args);
}
subscription<T extends object>(obj: T, ...args: any[]): void;
subscription(msg: string, ...args: any[]): void;
subscription(msg: string, ...args: any[]): void {
this.logger.subscription(msg, ...args);
}
}