All files Logger.ts

0% Statements 0/22
0% Branches 0/2
0% Functions 0/4
0% Lines 0/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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                                                                                                             
import { createLogger, format, transports } from 'winston';
// import { remove_non_ascii } from '../../lib/framework/src/string/Extras';
 
const customFormat = format.printf(({ level, message, timestamp }) => {
    const timestampDate = new Date(timestamp);
    const date = [
        timestampDate.getDay(),
        timestampDate.getMonth(),
        timestampDate.getFullYear(),
    ].join('.');
    const time = [
        timestampDate.getHours(),
        timestampDate.getMinutes(),
        timestampDate.getSeconds(),
        timestampDate.getMilliseconds(),
    ].join(':');
 
    const formatedTimestamp = `[ ${date} @ ${time} ]`;
    const levelPadding = getLevelPadding();
 
    return `${formatedTimestamp} [ ${level.padEnd(levelPadding, ' ')} ] ${message}`;
  });
 
const getLevelPadding = (): number => {
    const levels = [
        'info',
        'debug',
        'error',
    ].map((level) => {
        return level.length;
    });
 
    const padding = levels.reduce((accumulator: number, currentValue: number) => {
        return currentValue > accumulator ? currentValue : accumulator;
    });
 
    return padding;
};
 
const defaultLogger = createLogger({
    level: 'debug',
    format: format.combine(
        format.cli(),
        format.timestamp(),
        customFormat,
    ),
});
 
const consoleLogger = defaultLogger.child({});
consoleLogger.add(new transports.Console());
 
export const ConsoleLogger = consoleLogger;
 
export default defaultLogger;