Раздел описывает систему логирования и обработку ошибок в Telegram-боте Bars Accounting Telegram.
Для логирования используется библиотека NLog, все записи сохраняются в файл logs/logfile.log и выводятся в консоль.
Бот использует NLog для отслеживания состояния приложения, диагностики ошибок и анализа запросов к WebStore.
Типы логов:
INFO — штатная работа системы (запуск, действия пользователя, запросы API);
WARN — нестандартные ситуации (ошибочные ответы, проблемы с регистрацией, устаревшие данные);
ERROR — критические ошибки, приводящие к сбоям в логике или остановке операций;
TRACE / DEBUG — отладочная информация (используется в режиме разработки).
Файл Configs/NLog.config определяет правила логирования:
<nlog autoReload="true" throwConfigExceptions="true">
<targets>
<target name="logfile" xsi:type="File" fileName="logs/logfile.log" layout="${longdate} | ${level} | ${message}" />
<target name="console" xsi:type="Console" layout="${longdate} | ${level} | ${message}" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile,console" />
</rules>
</nlog>
Логи сохраняются в папку \publish\logs.
Файл автоматически создаётся при первом запуске.
Компоненты:
Telegram API
Ошибки типа RequestException возникают при потере соединения с Telegram.
Система автоматически пытается переподключиться.
WebStore API
При ошибках API (например, неверная подпись или таймаут) бот фиксирует проблему в логах и уведомляет пользователя:
Произошла ошибка при обращении к серверу. Повторите попытку позже.
База данных
Если при обращении к SQLite возникает исключение (DbUpdateException), бот пишет лог и продолжает работу без остановки.
Важно:
Не рекомендуется включать Sensitive Data Logging в production-режиме, так как в логах могут содержаться персональные данные.