首页 > 解决方案 > 为 VSCode 扩展创建日志文件

问题描述

将 VSCode 扩展中的日志记录语句写入文件的标准方法是什么?

我觉得我缺少一些工作范式......我可以找到很多方法来使控制台日志对调试我的扩展(频道、typescript-logging 之类的库)更有用,但我没有看到任何为我的扩展创建日志文件的方法。

这不是一种常见的做法吗?如果我的扩展程序的用户遇到问题,他们向我发送诊断信息以保存他们可以通过打开开发人员工具看到的控制台日志的最简单方法是什么?

感谢您的任何建议

标签: typescriptvisual-studio-code

解决方案


对于那些试图解决相同问题并寻求建议的人,我最终选择了为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 的“调试控制台”中。这个解决方法为我解决了这个问题。


推荐阅读