typescript - 为 VSCode 扩展创建日志文件
问题描述
将 VSCode 扩展中的日志记录语句写入文件的标准方法是什么?
我觉得我缺少一些工作范式......我可以找到很多方法来使控制台日志对调试我的扩展(频道、typescript-logging 之类的库)更有用,但我没有看到任何为我的扩展创建日志文件的方法。
这不是一种常见的做法吗?如果我的扩展程序的用户遇到问题,他们向我发送诊断信息以保存他们可以通过打开开发人员工具看到的控制台日志的最简单方法是什么?
感谢您的任何建议
解决方案
对于那些试图解决相同问题并寻求建议的人,我最终选择了为typescript提供类型的 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
,但要小心这个错误,它会阻止日志显示在 VSCode 的“调试控制台”中。这个解决方法为我解决了这个问题。
推荐阅读
- python - 如何在 Python-3.7 中修复 Tkinter?
- arrays - 为什么 - 会以正数返回正数?
- html - 我正在使用箭头键(向上,向下)导航 html,焦点将转到每个 div 元素。我想跳过html页面中一个div元素的焦点
- android - 从膨胀的 XML 将适配器设置为 ListView 以打印 PDF - 缺少项目
- react-native - 如何使用 wix react-native-navigation 获得 bottomTab 按下操作?
- python - 不允许空格和除下划线以外的特殊符号的正则表达式
- salesforce - 谷歌表单与Salesforce集成
- r - 如何在不显示图例的情况下使用 fviz_pca_ind() 进行绘图?
- javascript - 如何使用 MediaSource API 播放音频?
- c# - 无法通过 ASP.NET Identity 3.0 中的 Http 发布请求删除用户