feat(logging): JSON形式の構造化ログでログを出力できるように (MisskeyIO#346)
This commit is contained in:
		| @@ -28,7 +28,7 @@ const bootLogger = logger.createSubLogger('boot', 'magenta', false); | ||||
| const themeColor = chalk.hex('#86b300'); | ||||
|  | ||||
| function greet() { | ||||
| 	if (!envOption.quiet) { | ||||
| 	if (!envOption.quiet && !envOption.logJson) { | ||||
| 		//#region Misskey logo | ||||
| 		const v = `v${meta.version}`; | ||||
| 		console.log(themeColor('  _____ _         _           ')); | ||||
| @@ -46,7 +46,7 @@ function greet() { | ||||
| 	} | ||||
|  | ||||
| 	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, | ||||
| 	disableClustering: false, | ||||
| 	verbose: false, | ||||
| 	logJson: false, | ||||
| 	withLogTime: false, | ||||
| 	quiet: false, | ||||
| }; | ||||
|   | ||||
| @@ -41,7 +41,7 @@ export default class Logger { | ||||
|  | ||||
| 	@bindThis | ||||
| 	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 (level === 'debug') store = false; | ||||
|  | ||||
| @@ -50,6 +50,19 @@ export default class Logger { | ||||
| 			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 worker = cluster.isPrimary ? '*' : cluster.worker!.id; | ||||
| 		const l = | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 まっちゃとーにゅ
					まっちゃとーにゅ