2017-02-02 6 views
0

У меня есть сервер nodejs, который проверяет данные с использованием setInterval функции каждые x секунд. Этот бит приложения выглядит следующим образом:foreverjs не записывает console.log дочернего процесса в файлы журнала

startPolling() { 
    debug('Snmp poller started'); 

    timers.setInterval(
     this.poll(), 
     config.get('Snmp.interval') 
); 
} 

poll() { 
    return() => { 
     if (dbConnection.get()) { 
      debug('Polling data'); 
      this.fetchSiteNodes(this.site); 
     } 
    }; 
} 

Далее в моем pacakge.json файл я бегу сервер с этой длительной командой:

NODE_PATH = $ NODE_PATH: ./ NODE_ENV = развитие навсегда -p журналы -a -l forever.log -o журналы/output.log -e журналы/error.log -d начать ./bin/www

я сломаю его здесь:

  • -p журналы - путь к каталогу logs, где я хочу все журналы сидеть
  • -a - добавить журналы в конце forever.log файла
  • -l forever.log - имя файла журнала напишите в
  • -o logs/output.log - имя файла, в котором идет stdout (если я не ошибаюсь?)
  • -e logs/error.log - имя файла, в котором все ошибки от ребенка процесс идет
  • -d - режим отладки? (Более подробные отладки?)
  • старта - начиная навсегда

Теперь из фрагмента кода выше и навсегда команда я бы ожидать, что файл logs/output.log будет содержать все console.logs(...) выходов из сценария, так что бы содержит что-то например:

Snmp poller started 
polling data +10 
// after 10 secons 
polling data +10 

К сожалению, это не то, что происходит, в основном все файлы журнала остаются пустыми.

Как создать дочерний процесс напишите console.logs в файл output.log навсегда?

Спасибо!

ответ

0

Отвечая на мой вопрос.

Я пропустил факт, что я использую debug library, и я не включил уровень отладки в команду npm, после добавления DEBUG=server,app,database он начал работать как ожидалось. В конце концов я мог бы также добавить DEBUG=*, но тогда выход будет подавляющим, содержащим все запросы mongodb и т. Д.