Уинстон не пишет в лог файлы - PullRequest
0 голосов
/ 20 декабря 2018

Простая проблема с регистратором Winston для NodeJS, на решение которой ушло несколько часов:

const winston = require('winston');

exports.logger = winston.createLogger({
    transports: [
        new winston.transports.File({
            format: winston.format.json(),
            level: 'info',
            timestamp: true,
            maxsize: 512000, // ~ 5 MB
            maxFiles: 10,
            filename: '../logs/info.log'
        }),
        new winston.transports.Console({
            format: winston.format.simple(),
            level: 'info'
        })
    ]
});

Как забавный факт, он может создать файл внутри папки, если он существует, но не можетсоздайте папку, если она не существует (WTF?).

Проблема в том, что никогда не сохраняет какую-либо информацию в файл.Я попытался изменить права доступа.Ничего такого.Никакой обратной связи по этому вопросу не получено.

Возможно, я слишком туп для документации, потому что об этом ничего не говорится, но многие люди сталкиваются с той же проблемой.

1 Ответ

0 голосов
/ 20 декабря 2018

Хорошо, я только что обнаружил проблему: в зависимости от того, откуда вызывается файл, путь будет интерпретироваться по-разному.

Диагностика: Показываемый мною кусок был не в корневом каталоге проекта, а основной файл, который я выполнял (и который требует этот кусок кода), и поэтому путь интерпретировался с точки зрения корневого файла.

Результат: Мои журналы писались прямо за пределами каталога моего проекта.

...