/
server.ts
52 lines (43 loc) · 1.38 KB
/
server.ts
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import each from '@tinkoff/utils/array/each';
import split from '@tinkoff/utils/string/split';
import env from 'std-env';
import { hostname } from 'os';
import { LEVELS } from './constants';
import { Logger } from './logger';
import type { LogLevel } from './logger.h';
import { createLoggerFactory } from './factory';
import { debugGetState } from './adapters/debug';
import { NodeBasicReporter } from './reporters/server/nodeBasic';
import { NodeDevReporter } from './reporters/server/nodeDev';
import { JSONReporter } from './reporters/json';
const level = process.env.LOG_LEVEL ?? process.env.DEBUG_LEVEL;
const enable = process.env.LOG_ENABLE ?? process.env.DEBUG_ENABLE;
Logger.setLevel(level as LogLevel);
if (enable) {
each((val) => {
const [lvl, ...name] = val.split(':');
if (lvl in LEVELS) {
Logger.enable(lvl, name.join(':'));
} else {
Logger.enable(val);
}
}, split(',', enable));
}
if (!level && !enable) {
const state = debugGetState();
state && Logger.load(state);
}
const DefaultReporter = env.ci || env.test ? NodeBasicReporter : NodeDevReporter;
const reporter =
process.env.DEBUG_PLAIN || process.env.NODE_ENV !== 'production'
? new DefaultReporter()
: new JSONReporter();
const logger = createLoggerFactory({
name: '',
reporters: [reporter],
defaults: {
pid: process.pid,
hostname: hostname(),
},
});
export { logger };