feat(logging): JSON形式の構造化ログでログを出力できるように (MisskeyIO#346)
This commit is contained in:
parent
02cd74d2dc
commit
2fb3924075
|
@ -28,7 +28,7 @@ const bootLogger = logger.createSubLogger('boot', 'magenta', false);
|
||||||
const themeColor = chalk.hex('#86b300');
|
const themeColor = chalk.hex('#86b300');
|
||||||
|
|
||||||
function greet() {
|
function greet() {
|
||||||
if (!envOption.quiet) {
|
if (!envOption.quiet && !envOption.logJson) {
|
||||||
//#region Misskey logo
|
//#region Misskey logo
|
||||||
const v = `v${meta.version}`;
|
const v = `v${meta.version}`;
|
||||||
console.log(themeColor(' _____ _ _ '));
|
console.log(themeColor(' _____ _ _ '));
|
||||||
|
@ -46,7 +46,7 @@ function greet() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bootLogger.info('Welcome to Misskey!');
|
bootLogger.info('Welcome to Misskey!');
|
||||||
bootLogger.info(`Misskey v${meta.version}`, null, true);
|
bootLogger.info(`Misskey v${meta.version}`, { version: meta.version, hostname: os.hostname(), pid: process.pid }, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -9,6 +9,7 @@ const envOption = {
|
||||||
noDaemons: false,
|
noDaemons: false,
|
||||||
disableClustering: false,
|
disableClustering: false,
|
||||||
verbose: false,
|
verbose: false,
|
||||||
|
logJson: false,
|
||||||
withLogTime: false,
|
withLogTime: false,
|
||||||
quiet: false,
|
quiet: false,
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,7 +41,7 @@ export default class Logger {
|
||||||
|
|
||||||
@bindThis
|
@bindThis
|
||||||
private log(level: Level, message: string, data?: Record<string, any> | null, important = false, subContexts: Context[] = [], store = true): void {
|
private log(level: Level, message: string, data?: Record<string, any> | null, important = false, subContexts: Context[] = [], store = true): void {
|
||||||
if (envOption.quiet) return;
|
if (envOption.quiet && !envOption.logJson) return;
|
||||||
if (!this.store) store = false;
|
if (!this.store) store = false;
|
||||||
if (level === 'debug') store = false;
|
if (level === 'debug') store = false;
|
||||||
|
|
||||||
|
@ -50,6 +50,19 @@ export default class Logger {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (envOption.logJson) {
|
||||||
|
console.log(JSON.stringify({
|
||||||
|
time: new Date().toISOString(),
|
||||||
|
level: level,
|
||||||
|
message: message,
|
||||||
|
data: data,
|
||||||
|
important: important,
|
||||||
|
context: [this.context].concat(subContexts).join('.'),
|
||||||
|
cluster: cluster.isPrimary ? 'primary' : `worker-${cluster.worker!.id}`,
|
||||||
|
}));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const time = dateFormat(new Date(), 'HH:mm:ss');
|
const time = dateFormat(new Date(), 'HH:mm:ss');
|
||||||
const worker = cluster.isPrimary ? '*' : cluster.worker!.id;
|
const worker = cluster.isPrimary ? '*' : cluster.worker!.id;
|
||||||
const l =
|
const l =
|
||||||
|
|
Loading…
Reference in a new issue