summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/LoggerService.ts
blob: 221631f129a0d7834bdde1e867cdef8c0dff94aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import { Inject, Injectable } from '@nestjs/common';
import * as SyslogPro from 'syslog-pro';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
import Logger from '@/logger.js';
import { bindThis } from '@/decorators.js';
import type { KEYWORD } from 'color-convert/conversions';

@Injectable()
export class LoggerService {
	private syslogClient;

	constructor(
		@Inject(DI.config)
		private config: Config,
	) {
		if (this.config.syslog) {
			this.syslogClient = new SyslogPro.RFC5424({
				applicationName: 'Misskey',
				timestamp: true,
				includeStructuredData: true,
				color: true,
				extendedColor: true,
				server: {
					target: config.syslog.host,
					port: config.syslog.port,
				},
			});
		}
	}

	@bindThis
	public getLogger(domain: string, color?: KEYWORD | undefined, store?: boolean) {
		return new Logger(domain, color, store, this.syslogClient);
	}
}