在VSCode扩展中将日志记录语句写入文件的标准方法是什么?
我觉得工作中存在一些我缺少的范例......我可以找到很多方法来使控制台日志对于调试我的扩展(频道,像typescript-logging这样的库)更有用,但我没有看到任何方法为我的扩展程序创建日志文件。
这不是一种常见做法吗?如果我的扩展程序的用户遇到问题是他们向我发送诊断信息以保存控制台日志的最简单方法,他们可以通过打开开发人员工具来查看它们?
谢谢你的任何建议
对于那些试图解决相同问题并寻找建议的人,我最终选择了提供打字稿类型的winston.js。
我定义了一个这样的记录器:
const logger: winston.Logger = winston.createLogger({
level: 'debug',
format: winston.format.combine(
winston.format.simple(),
winston.format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [
new winston.transports.File({
level: 'info',
dirname: logFileDir,
filename: logFileName
}),
new winston.transports.File({
level: 'debug',
dirname: logFileDir,
filename: debugLogFileName
}),
]
});
export logger;
然后我可以从我的代码中的其他地方调用logger.info("whatever")
,并将其写入指定的日志文件。
您也可以通过添加Console
传输将日志写入控制台,但要小心this bug,这会阻止日志显示在VSCode的“调试控制台”中。 This workaround为我解决了这个问题。