====== Отладка приложений ======

  * node --debug app.js

===== Chrome =====

  * npm install node-inspector

<code>
node-inspector --web-port=5859
Node Inspector v0.7.3
Visit http://127.0.0.1:5859/debug?port=5858 to start debugging.
</code>

https://github.com/node-inspector/node-inspector

==== Запуск скрипта для отладки ====

  * node --debug app.js
  * node --debug-brk app.js - Останавливается на 1 линии кода после запуска
  * 
===== PHPStorm =====

{{:nodejs:rundebug_configurations_2014-05-02_00-55-23_2014-05-02_00-55-51.png?200|}}

Настраиваем скрипт и запускаем отладчик.


====== Удаленная отладка nodejs приложения в PhpStorm или WebStorm ======


===== Сервер =====

  * Скачать и распаковать TCP-прокси balance http://www.inlab.de/balance.html

<code>
cd ~
wget http://www.inlab.de/balance-3.56.tar.gz
tar -xvf balance-3.56.tar.gz
cd balance-3.56
</code>

  * закомментировать следующий код в balance.c

<code с>
sockoptoff = 0; 
#if defined(IPV6_V6ONLY)
  status = setsockopt(srv_socket, IPPROTO_IPV6, IPV6_V6ONLY, (char*) &sockoptoff, sizeof(sockoptoff)); 
  if(status < 0) { 
    syslog(LOG_WARNING,"setsockopt(IPV6_V6ONLY=0) failed"); 
  } 
#endif
</code>

  * make
  * make install
  * balance -df 8585 127.0.0.1:5858

===== PhpStorm =====

На хосте с PhpStorm создать remote-debug конфигурацию: host = адрес удаленного nodejs сервера, port = 8585. Затем выбрать и запустить отладку этой конфигурации, предварительно выставив брейкпоинты, где требуется.

====== Логирование приложений ======

  * debug
  * winston - Имеет возможность выводить в указанное храгнилище (файл или БД), также имеет возможность управлять уровнями сообщений
  * NODE_DEBUG = 'http net' - Переменная окружения, В ней указываются модули, которые необходимо логировать. Сами модули анализируют эту переменную и выдают отладочную информацию