Created scaffolding for Logging
This commit is contained in:
parent
ecff8798fe
commit
8eacebc306
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
export enum LogSeverity {
|
||||
FATAL,
|
||||
ERROR,
|
||||
WARN,
|
||||
INFO,
|
||||
DEBUG,
|
||||
TRACE
|
||||
}
|
||||
|
||||
export enum LogModule {
|
||||
PROCESS,
|
||||
USER
|
||||
}
|
||||
|
||||
abstract class Logger {
|
||||
readonly module = {
|
||||
...LogModule
|
||||
}
|
||||
|
||||
abstract log(severity: LogSeverity, module: LogModule, message: string): void
|
||||
fatal(module: LogModule, message: string): void { this.log(LogSeverity.FATAL, module, message) }
|
||||
error(module: LogModule, message: string): void { this.log(LogSeverity.ERROR, module, message) }
|
||||
warn(module: LogModule, message: string): void { this.log(LogSeverity.WARN, module, message) }
|
||||
info(module: LogModule, message: string): void { this.log(LogSeverity.INFO, module, message) }
|
||||
debug(module: LogModule, message: string): void { this.log(LogSeverity.DEBUG, module, message) }
|
||||
trace(module: LogModule, message: string): void { this.log(LogSeverity.TRACE, module, message) }
|
||||
}
|
||||
|
||||
function create_log_string(severity: LogSeverity, module: LogModule, message: string): string {
|
||||
return `${(new Date()).toISOString()} [${LogModule[module]}] [${LogSeverity[severity]}] ${message}`
|
||||
}
|
||||
|
||||
class DebugLogger extends Logger {
|
||||
|
||||
log(severity: LogSeverity, module: LogModule, message: string): void {
|
||||
console.log(create_log_string(severity, module, message))
|
||||
}
|
||||
}
|
||||
|
||||
const _logger: Logger = new DebugLogger()
|
||||
|
||||
|
||||
export default _logger
|
||||
Loading…
Reference in New Issue