Анализ ошибок и логирование

Сервер печати CashCheck логирует большинство своих действий. Для вывода используется библиотека log4j. Также в некоторых местах используется прямой вывод в консоль. В основном это специальный консольный вывод и незалоггированные ошибки сервера. По умолчанию основной лог пишется в файл ./log/cashserver.log, а консольный вывод - в ./log/cashserver.out.

В разных режимах работы логгера log4j может выводиться разная информация. Примерное распределение информации по уровням логгирования:

  • error: ошибки сервера, потоков команд, работы драйверов;

  • warn: ошибки протокола (неверные пропущенные заголовки итд), ошибки, возвращенные драйвером и переданные вызывающему;

  • info: старт, стоп, получение команд;

  • debug: получение сервером запросов, старт/стоп каждого потока команд;

  • trace: содержимое команд и ответов на них, низкоуровневый вывод драйверов и устройств.

Полный вывод может понадобиться для отладки конкретного устройства. Например, когда возникает ошибка соединения, с помощью подробной трассировки можно понять на каком этапе была авария. Часто подобная информация нужна разработчикам при дописывании программы для поддержки какого-либо устройства. Чтобы сменить режим, поменяйте значение параметра priority в конфигурации log4j-cashcheck.xml (может потребоваться перезагрузка сервера печати):

<root>
<priority value="TRACE" />
<appender-ref ref="cashserverfilelog" />
</root>

Для более полного понимания логики работы логгера читайте документацию по log4j.