| 44 | } |
| 45 | |
| 46 | class LogMessageImpl implements LogMessage { |
| 47 | constructor( |
| 48 | readonly message: string, |
| 49 | readonly severity: LogSeverity, |
| 50 | readonly category: LogCategory, |
| 51 | ) { } |
| 52 | |
| 53 | public toLine(maxLength: number): string { |
| 54 | const logMessage = ( |
| 55 | maxLength && this.message && this.message.length > maxLength |
| 56 | ? this.message.substring(0, maxLength) + "…" |
| 57 | : (this.message || "<empty message>") |
| 58 | ).trimRight(); |
| 59 | |
| 60 | const time = `[${(new Date()).toLocaleTimeString()}]`; |
| 61 | const prefix = `[${LogCategory[this.category]}] [${LogSeverity[this.severity]}]`; |
| 62 | return `${time} ${prefix} ${logMessage}`; |
| 63 | } |
| 64 | } |
| 65 | |
| 66 | export class CategoryLogger implements Logger { |
| 67 | constructor(private base: Logger, private defaultCategory: LogCategory) { } |
nothing calls this directly
no outgoing calls
no test coverage detected