ИС "Такском-Доклайнз"                  ИНФОРМАЦИЯ ДЛЯ РАЗРАБОТЧИКОВ
×
3.3.8. Логирование работы на стороне клиента
 
Для .Net SDK имеется возможность настраивать систему логирования с помощью Taxcom.SDK.Log.config или в конфигурационном файле интеграционного решения, см. https://github.com/NLog/NLog/wiki/Configuration-file#configuration-file-locations.
Система логирования позволяет:
Логировать ошибки внутри SDK независимо от настроек. Содержание лог-файла ошибок представлено в п. 3.3.8.1. Содержание лог-файла ошибок.
Реализовать опциональное включение логирования для операций. (По умолчанию логирование любых операций отключено.)
Для каждого публичного метода SDK фиксировать в лог-файле начало и конец работы метода, переданные аргументы, а так же авторизационный токен, идентификатор экземпляра SDK, номер потока,...,подробнее о содержании лог-файла операций см. п. 3.3.8.2. Содержание лог-файла операций.
Предусмотрено ведение двух журналов логирования: журнала событий (actions.log) и журнала ошибок (error.log).
 
Управление журналами логирования
Управление логированием осуществляется через конфигурационный файл  Taxcom.SDK.Log.config, который должен располагаться рядом с Taxcom.Client.Api.dll
Пути к файлам вынесены в переменные:
<variable name="errorlog" value="taxcom_sdk_error.log"/>
<variable name="actionslog" value="taxcom_sdk_actions.log"/>
При достижении лог-файлом размера в 10 мегабайт (задаётся в конфигурационном файле) он автоматически архивируется. Хранится 9 последних копий лог-файлов, более старые удаляются.
По умолчанию логируются только ошибки. Для включения логирования вызовов методов и запросов на сервер необходимо активировать правила записи для уровней Debug и Trace соответственно:
<rules>
  <logger name="ClientApiLogger" level="Error" writeTo="asyncWrapperError" enabled="true"/>
  <!-- enabled="true" для событий begin и end-->
  <logger name="ClientApiLogger" levels="Debug" writeTo="asyncWrapperActions" enabled="false"/>
  <!-- enabled="true" для событий request и response-->
  <logger name="ClientApiLogger" levels="Trace" writeTo="asyncWrapperActions" enabled="false"/>
</rules>
Подробнее о настройке можно почитать здесь: https://github.com/NLog/NLog/wiki
Если система логирования не была сконфигурирована, запись в лог производиться не будет. При этом функциональность SDK сохранится в полном объёме.
 
Настройки по умолчанию
Настройки задают следующее поведение системы логирования:
Логируются только ошибки.
Запись ведется в файл taxcom_sdk_error.log.
По достижении порога в 10 Мб текущий лог-файл переименовывается в taxcom_sdk_error.%НОМЕР_АРХИВА%.log, где %НОМЕР_АРХИВА% - порядковый номер лог-файла. Файл не сжимается.
Система хранит не более 9 последних пронумерованных лог-файлов и текущий лог-файл на каждый журнал (журнал событий, журнал ошибок).
 
Типовые задачи
Изменение расположения лог-файлов
Для того, чтобы задать расположение лог-файлов, необходимо скорректировать переменные errorlog и actionslog в файле конфигурации. Значения данных переменных будут подставлены в атрибут fileName соответствующего элемента <target> (<target name="error"> для лога ошибок и <target name="actions"> для лога событий).
Значениями переменных errorlog и actionslog могут быть:
относительные пути (от рабочей директории приложения)
<variable name="errorlog" value="logs\taxcom_sdk_error.log"/>;
абсолютные пути, в том числе и сетевые
<variable name="errorlog" value="\\SOME_HOST\Logs\taxcom_sdk_error.log"/>  
<variable name="errorlog" value="D:\MyCustomPath\taxcom_sdk_error.log"/>;
шаблонизированные пути (с указанием даты, и тому подобного)
<variable name="errorlog" value="${basedir}/logs/${date}-${level}.log"/>.
Подробнее о настройке записи в файл можно узнать здесь: https://github.com/NLog/NLog/wiki/File-target
Включение записи событий
По умолчанию запись вызовов методов SDK отключена. Для её включения необходимо включить правило
<logger name="ClientApiLogger" levels="Debug" writeTo="asyncWrapperActions" enabled="true"/>
Включение записи запросов на сервер
По умолчанию запись запросов на сервер отключена. Для её включения необходимо включить правило
<logger name="ClientApiLogger" levels="Trace" writeTo="asyncWrapperActions" enabled="true"/>
Отключение записи ошибок
Крайне не рекомендуется это делать.
Для отключения записи информации о возникших исключениях необходимо выключить следующее правило:
<logger name="ClientApiLogger" level="Error" writeTo="asyncWrapperActions" enabled="false"/>