【问题标题】:Creating a log file for a VSCode extension为 VSCode 扩展创建日志文件
【发布时间】:2020-06-30 21:39:46
【问题描述】:
将 VSCode 扩展中的日志语句写入文件的标准方法是什么?
我觉得我缺少一些工作范式...我可以找到很多方法使控制台日志对调试我的扩展程序(频道,typescript-logging 之类的库)更有用,但我没有看不到任何为我的扩展创建日志文件的方法。
这不是一种常见的做法吗?如果我的扩展程序的用户遇到问题,他们向我发送诊断信息以保存他们可以通过打开开发者工具看到的控制台日志的最简单方法是什么?
感谢您的任何建议
【问题讨论】:
标签:
typescript
visual-studio-code
【解决方案1】:
对于那些试图解决相同问题并寻求建议的人,我最终选择了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 为我解决了这个问题。