使用 Google Cloud Winston Logging (Nodejs) 的日志前后的有趣字符
Funny Characters Before and at End of Logs with Google Cloud Winston Logging (Nodejs)
我正在使用 google-cloud/logging-winston nodejs 包进行日志记录,并且我以这种方式创建了用于输出的自定义格式化程序:
const winston = require('winston');
const { LoggingWinston } = require('@google-cloud/logging-winston');
const { format } = winston;
const { combine, label, json, timestamp, printf, colorize, simple } = format;
const path = require('path');
const customFormats = (category) => combine(
label({label: category}),
colorize({all: true}),
// simple()
timestamp(),
json(),
printf((info) => `${info.timestamp} - [${info.label?`${info.label}`:"NO_LABEL"}] - [${info.level}] : ${info.message}`));
它按预期记录,但在 Google 云控制台上查看时,日志消息前后有有趣的字符。以下是日志的一些示例:
2021-01-16T10:58:00.836Z - [DEFAULT] - [[32minfo[39m] : [32mValidating route @/bills/airtime/send[39m
2021-01-16T10:58:00.841Z - [AIRTIME] - [[31merror[39m] : [31mAirtime recharge error Low account balance[39m
我不知道这些是什么意思:“[32m”、“[31m”或“[39m”,但它们让我很难阅读我的日志。
这些字符称为 ANSI 转义码或转义序列。它们用于修改终端显示文本的方式。例如更改颜色或使文本加粗。这可能会使消息在终端上看起来更好,但会使处理日志文件更加困难。
这些字符不是由 Google 云日志添加的,而是由系统上的应用程序或记录器软件添加的。
如果您检查问题中的示例代码,请注意 label
和 colorize
。这些函数正在生成转义码。
const customFormats = (category) => combine(
label({label: category}),
colorize({all: true}),
我正在使用 google-cloud/logging-winston nodejs 包进行日志记录,并且我以这种方式创建了用于输出的自定义格式化程序:
const winston = require('winston');
const { LoggingWinston } = require('@google-cloud/logging-winston');
const { format } = winston;
const { combine, label, json, timestamp, printf, colorize, simple } = format;
const path = require('path');
const customFormats = (category) => combine(
label({label: category}),
colorize({all: true}),
// simple()
timestamp(),
json(),
printf((info) => `${info.timestamp} - [${info.label?`${info.label}`:"NO_LABEL"}] - [${info.level}] : ${info.message}`));
它按预期记录,但在 Google 云控制台上查看时,日志消息前后有有趣的字符。以下是日志的一些示例:
2021-01-16T10:58:00.836Z - [DEFAULT] - [[32minfo[39m] : [32mValidating route @/bills/airtime/send[39m
2021-01-16T10:58:00.841Z - [AIRTIME] - [[31merror[39m] : [31mAirtime recharge error Low account balance[39m
我不知道这些是什么意思:“[32m”、“[31m”或“[39m”,但它们让我很难阅读我的日志。
这些字符称为 ANSI 转义码或转义序列。它们用于修改终端显示文本的方式。例如更改颜色或使文本加粗。这可能会使消息在终端上看起来更好,但会使处理日志文件更加困难。
这些字符不是由 Google 云日志添加的,而是由系统上的应用程序或记录器软件添加的。
如果您检查问题中的示例代码,请注意 label
和 colorize
。这些函数正在生成转义码。
const customFormats = (category) => combine(
label({label: category}),
colorize({all: true}),