Создание файла журнала для расширения VSCode - PullRequest
0 голосов
/ 09 апреля 2019

Каков стандартный способ записи операторов в расширении VSCode в файл ?

Я чувствую, что на работе есть какая-то парадигма, которую мне не хватает ... Я могу найти множество способов сделать журнал консоли более полезным для отладки моего расширения (Каналы, библиотеки, такие как typScript-logging ), но я не вижу методов для создания файла журнала для моего расширения.

Разве это не распространенная практика? Если у пользователя моего расширения возникает проблема, это самый простой способ отправить мне диагностику для сохранения журнала консоли, который он может увидеть, открыв инструменты разработчика?

Спасибо за любые предложения

1 Ответ

0 голосов
/ 11 апреля 2019

Для тех, кто пытается решить ту же проблему и ищет предложения, я остановился на 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. Этот обходной путь решил эту проблему для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...