Spaces:
Runtime error
Runtime error
File size: 2,264 Bytes
4327358 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import { LogLevel } from '@nestjs/common';
import { ChildLoggerOptions, Level, LevelWithSilent, Logger } from 'pino';
export interface LoggerBuilder {
child(bindings: Record<string, any>, options?: ChildLoggerOptions): Logger;
}
function getNestJSLogLevels(): LogLevel[] {
const level = getPinoLogLevel();
switch (level) {
case 'trace':
return ['error', 'warn', 'log', 'debug', 'verbose'];
case 'debug':
return ['error', 'warn', 'log', 'debug'];
case 'info':
return ['error', 'warn', 'log'];
case 'warn':
return ['error', 'warn'];
case 'error':
return ['error', 'warn'];
default:
return ['error', 'warn', 'log'];
}
}
export function getPinoLogLevel(debug: boolean = false): Level {
const enableDebug = process.env.DEBUG != undefined || debug;
const level = getDefaultPinoLogLevel();
if (level === 'trace') {
return 'trace';
}
if (enableDebug) {
return 'debug';
}
return level;
}
export function isDebugEnabled() {
const level = getPinoLogLevel();
return level == 'debug' || level == 'trace';
}
export function getPinoHttpUseLevel(): LevelWithSilent {
const levels = ['fatal', 'error', 'warn', 'info', 'debug', 'trace'];
const level = (process.env.WAHA_HTTP_LOG_LEVEL || 'info').toLowerCase();
if (!levels.includes(level)) {
console.error(
`Unknown ${process.env.WAHA_HTTP_LOG_LEVEL}' value for WAHA_HTTP_LOG_LEVEL`,
);
return 'info';
}
return level as LevelWithSilent;
}
export function getDefaultPinoLogLevel(): Level {
const logLevel = (process.env.WAHA_LOG_LEVEL || 'info').toLowerCase();
const levels = ['fatal', 'error', 'warn', 'info', 'debug', 'trace'];
if (!levels.includes(logLevel)) {
console.error(
`Unknown ${process.env.WAHA_LOG_LEVEL}' value for WAHA_LOG_LEVEL`,
);
return 'info';
}
return logLevel as Level;
}
export function getPinoTransport() {
const logFormat = (process.env.WAHA_LOG_FORMAT || 'PRETTY').toUpperCase();
if (logFormat == 'JSON') {
return undefined;
}
return {
target: 'pino-pretty',
options: {
singleLine: true,
colorize: true,
messageFormat: '{if session} session:{session} - {end}{msg}',
},
};
}
export { getNestJSLogLevels };
|