61 lines
1.8 KiB
TypeScript
61 lines
1.8 KiB
TypeScript
import Model from "../db/Model";
|
|
import {LogLevel, LogLevelKeys} from "../Logger";
|
|
import {bufferToUuid} from "../Utils";
|
|
|
|
export default class Log extends Model {
|
|
public readonly id?: number = undefined;
|
|
private level?: number = undefined;
|
|
public message?: string = undefined;
|
|
private log_id?: Buffer = undefined;
|
|
private error_name?: string = undefined;
|
|
private error_message?: string = undefined;
|
|
private error_stack?: string = undefined;
|
|
private created_at?: Date = undefined;
|
|
|
|
protected init(): void {
|
|
this.setValidation('level').defined();
|
|
this.setValidation('message').defined().between(0, 65535);
|
|
this.setValidation('log_id').acceptUndefined().length(16);
|
|
this.setValidation('error_name').acceptUndefined().between(0, 128);
|
|
this.setValidation('error_message').acceptUndefined().between(0, 512);
|
|
this.setValidation('error_stack').acceptUndefined().between(0, 65535);
|
|
}
|
|
|
|
public getLevel(): LogLevelKeys {
|
|
if (typeof this.level !== 'number') return 'ERROR';
|
|
return <LogLevelKeys>LogLevel[this.level];
|
|
}
|
|
|
|
public setLevel(level: LogLevel): void {
|
|
this.level = level;
|
|
}
|
|
|
|
public getLogId(): string | null {
|
|
return this.log_id ? bufferToUuid(this.log_id) : null;
|
|
}
|
|
|
|
public setLogId(buffer: Buffer): void {
|
|
this.log_id = buffer;
|
|
}
|
|
|
|
public getErrorName(): string {
|
|
return this.error_name || '';
|
|
}
|
|
|
|
public getErrorMessage(): string {
|
|
return this.error_message || '';
|
|
}
|
|
|
|
public getErrorStack(): string {
|
|
return this.error_stack || '';
|
|
}
|
|
|
|
public setError(error?: Error): void {
|
|
if (!error) return;
|
|
|
|
this.error_name = error.name;
|
|
this.error_message = error.message;
|
|
this.error_stack = error.stack;
|
|
}
|
|
}
|