Finish fleshing out Model; refactor mixin types; TRUNCATE
This commit is contained in:
@@ -29,17 +29,17 @@ export default abstract class Logger {
|
||||
case LoggingLevel.Success:
|
||||
return green('success')
|
||||
case LoggingLevel.Error:
|
||||
return red('error')
|
||||
return red(' error')
|
||||
case LoggingLevel.Warning:
|
||||
return yellow('warning')
|
||||
case LoggingLevel.Info:
|
||||
return blue('info')
|
||||
return blue(' info')
|
||||
case LoggingLevel.Debug:
|
||||
return cyan('debug')
|
||||
return cyan(' debug')
|
||||
case LoggingLevel.Verbose:
|
||||
return gray('verbose')
|
||||
case LoggingLevel.Silent:
|
||||
return gray('silent')
|
||||
return gray(' silent')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,7 @@ class Logging {
|
||||
level,
|
||||
output,
|
||||
date: new Date,
|
||||
caller_name: this.get_caller_info(),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +74,14 @@ class Logging {
|
||||
public remove_logger(logger_class: typeof Logger) {
|
||||
this._loggers = this._loggers.filter(x => !(x instanceof logger_class))
|
||||
}
|
||||
|
||||
protected get_caller_info(level = 5): string {
|
||||
let e = new Error
|
||||
if ( !e.stack ) return 'Unknown'
|
||||
return e.stack.split(' at ')
|
||||
.slice(level)
|
||||
.map((x: string): string => x.trim().split(' (')[0].split('.')[0].split(':')[0])[0]
|
||||
}
|
||||
}
|
||||
|
||||
export { Logging }
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import AbstractLogger from './Logger.ts'
|
||||
import { LogMessage } from './types.ts'
|
||||
import { gray } from '../../external/std.ts'
|
||||
import { gray, cyan } from '../../external/std.ts'
|
||||
|
||||
export default class StandardLogger extends AbstractLogger {
|
||||
public async write(message: LogMessage): Promise<void> {
|
||||
const prefix = this.level_display(message.level)
|
||||
const text = `${prefix} ${gray(this.format_date(message.date))}`
|
||||
const text = `${prefix} ${gray(this.format_date(message.date))} (${cyan(message.caller_name || 'Unknown')})`
|
||||
console.log(text, message.output)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ interface LogMessage {
|
||||
level: LoggingLevel,
|
||||
date: Date,
|
||||
output: any,
|
||||
caller_name: string,
|
||||
}
|
||||
|
||||
const isLogMessage = (something: any): something is LogMessage => {
|
||||
|
||||
Reference in New Issue
Block a user