import {LoggingLevel, LoggingLevelType} from '../level/LoggingLevel'; import LoggingLevelMapping from '../level/LoggingLevelMapping'; import IAppender from './IAppender'; import {assertUnreachable} from '@techniker-me/tools'; export default class ConsoleAppender implements IAppender { public log(timestamp: string, level: LoggingLevelType, category: string, message: string) { const loggingLevel = LoggingLevelMapping.convertLoggingLevelTypeToLoggingLevel(level); switch (loggingLevel) { case LoggingLevel.Off: break; case LoggingLevel.Warn: case LoggingLevel.Error: console.error(`${timestamp} [${level}] [${category}] ${message}`); break; case LoggingLevel.Info: case LoggingLevel.Debug: case LoggingLevel.Trace: case LoggingLevel.Silly: case LoggingLevel.All: console.log(`${timestamp} [${level}] [${category}] ${message}`); break; default: assertUnreachable(loggingLevel); } } }