Sharkey/packages/backend/src/core/LoggerService.ts

36 lines
849 B
TypeScript
Raw Normal View History

2022-09-18 17:07:41 +03:00
import { Inject, Injectable } from '@nestjs/common';
import * as SyslogPro from 'syslog-pro';
import { DI } from '@/di-symbols.js';
2022-09-20 23:33:11 +03:00
import type { Config } from '@/config.js';
2022-09-18 17:07:41 +03:00
import Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
2022-09-18 17:07:41 +03:00
@Injectable()
export class LoggerService {
2022-09-18 21:11:50 +03:00
private syslogClient;
2022-09-18 17:07:41 +03:00
constructor(
@Inject(DI.config)
private config: Config,
) {
if (this.config.syslog) {
2022-09-18 21:11:50 +03:00
this.syslogClient = new SyslogPro.RFC5424({
2022-09-18 17:07:41 +03:00
applacationName: 'Misskey',
timestamp: true,
encludeStructuredData: true,
color: true,
extendedColor: true,
server: {
target: config.syslog.host,
port: config.syslog.port,
},
});
}
}
@bindThis
2022-09-18 17:07:41 +03:00
public getLogger(domain: string, color?: string | undefined, store?: boolean) {
2022-09-18 21:11:50 +03:00
return new Logger(domain, color, store, this.syslogClient);
2022-09-18 17:07:41 +03:00
}
}