2013-07-24 2 views
1

Я установил winston локально и указал имя файла журнала: './dataTest.log'.Как установить путь к журналу winston для локальной папки проекта

var winston = require('winston'); 
winston.add(winston.transports.File, { filename: './dataTest.log' }); 

Но я тогда нашел файл журнала, сидящий в домашней папке пользователя. (Который/Пользователи/имя пользователя я на Macos). Зачем? Я ожидал, что он будет сидеть в папке mynodeproject/public.

Пробовал задавать путь как 'dataTest.log', тот же результат.

EDIT: возможно, это связано скорее с узлом? Итак, как вы устанавливаете относительный путь в узле?

ответ

1

Сверху моей головы попробуйте использовать 'data.log' вместо './data.log'.

Вы должны указать код, который вы использовали для настройки и ведения журнала с помощью Winston, чтобы мы могли помочь.

Также, что вы имеете в виду, когда говорите, что вы установили winston локально?

Если файл был указан как ./data.log и был записан в вашу домашнюю папку, то текущий рабочий каталог во время выполнения был, вероятно, вашей домашней папкой. Вы запустили программу узла из своей домашней папки?

+1

Я не запускал «node myproject» из домашней папки проекта. Вы правы, текущая папка установлена ​​там, где вы запускаете свой узел. – kakacii

1

У меня была такая же проблема, и используется следующая:

var path = require('path'); 
var winston = require('winston'); 
winston.add(winston.transports.File, { filename: path.join(__dirname, '/dataTest.log') }); 

Смотрите правило no-path-concat ESLint для получения информации о том, почему использовать path.join вместо регулярного конкатенации.

Смежные вопросы