Журналы системы

В системе Docsvision имеется ряд журналов, которые используются для сбора информации о процессе установки и работы системы:

Настройки журналирования указываются в конфигурационном файле соответствующего сервиса.

Журнал работы сервера

Данный журнал содержит информацию о работе сервера Docsvision. Журнал сервера является средством диагностики при возникновении нештатных ситуаций и предназначен для передачи в службу технической поддержки Docsvision.

По умолчанию журнал сервиса сохраняется в папку /var/log/docsvision/appserver/dvappserver.log. Путь к журналу и уровень журналирования можно настроить в конфигурационном файле модуля Платформа, подробнее работа с конфигурационным файлом описана в разделе "Конфигурация модуля Платформа"

Пример настройки уровня журналирования приведён ниже.

Фрагмент конфигурационного файла dvappserver:
{
  "DocsVision": {
    "Platform": {
      "Server": {
        "TraceLevel": 1, (1)
        "LogFile": "/var/log/docsvision/appserver/dvappserver.log" (2)
      }
    }
  }
}
json
1 Уровень журналирования: 0 — журналирование не ведётся, 1 — Error, 2 — Warning, 3 — Info, 4 — Verbose. Если значение не задано, по умолчанию используется "Error".
2 Путь до файла журнала. По умолчанию /var/log/docsvision/appserver/dvappserver.log.

В системном журнале и журнале приложений может встречаться ошибка Unexpected error: The file '/docsvision/StorageServer/Fetch.aspx' does not exist.

Ошибка возникает из-за наличия модуля Конструктор отчетов, несовместимого с Docsvision текущей версии. Обработка запросов от данного модуля будет отключена.

Журналы установки клиентских компонентов

В журналах установки клиентских компонентов фиксируются события, возникающие в процессе установки клиентской части модулей Docsvision.

Журнал формируется отдельно для каждого из устанавливаемых клиентских компонентов и сохраняется в текстовый файл.

Путь к папке для хранения журналов всех установленных клиентских компонентов указывается в программе Консоль настройки Docsvision в параметре Папка журналов установки раздела "Настройка клиентской части".

Просмотреть журнал можно, открыв файл в текстовом редакторе.

Данный журнал содержит информацию о работе сервиса полнотекстового индексирования Docsvision.

По умолчанию журналы сообщений сервиса полнотекстового поиска сохраняется в директории /var/log/docsvision/fulltextservice.log.

Подробнее настройка журналирования полнотекстового поиска описана в разделе "Протоколирование работы сервиса полнотекстового индексирования".

Журнал сообщений "Консоли настройки Docsvision"

Консоль настройки Docsvision устанавливается на машину Windows. По умолчанию журнал располагается по адресу Каталог-установки-серверной-части-модуля-Платформа\Logs\ServerConsole.log

Ведение журнала можно отключить в настройках:
  1. Откройте Консоль настройки Docsvision.

  2. В меню выберите Инструменты  Настройки…​.

  3. В окне Общие настройки поставьте флаг Журналировать операции консоли настройки и укажите путь к файлу журнала в поле Файл журнала.

В журнале ведётся протоколирование событий программы Консоль настройки Docsvision и всех операций, выполняемых через программу.

Журнал работы файлового сервиса

В данный журнал сохраняется информация об ошибках работы файлового сервиса Docsvision, а также информационные сообщения (если включено).

Журнал сервера является средством диагностики при возникновении нештатных ситуаций и предназначен для передачи в службу технической поддержки Docsvision. По умолчанию журнал сервиса сохраняется в папку /var/log/docsvision/fileservice. Путь к журналу и уровень журналирования можно настроить в конфигурационном файле модуля Платформа.

Фрагмент конфигурационного файла dvfileservice:
  "NLog": {
    "targets": {
      "logFile": {
        "type": "File",
        "fileName": "${gdc:baseLogFolder}/docsvision/fileservice/${shortdate}.log", (1)
        "layout": "${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}"
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Warn", (2)
        "writeTo": "logFile"
      }
    ]
  }
json
1 Путь к файлу журнала настраивается в параметре \{gdc:baseLogFolder}. По умолчанию используется каталог /var/log/docsvision/fileservice.
2 Уровень журналирования, по умолчанию используется Warn.

Подробнее настройка журналирования dvfileservice описана в разделе "Настройка протоколирования работы файлового сервиса Docsvision".

Протоколирование запросов сервера приложений

Протоколирование запросов полезно для анализа входящих запросов на сервере приложений и ответов на них, заголовков и т.д.

Журнал запросов содержит следующую информацию:
  • HTTP запросы и ответы.

  • Дата и время запросов и ответов.

  • Заголовки

Протоколирование запросов сервера приложений настраивается в конфигурационном файле модуля по адресу /usr/lib/docsvision/platform/appsettings.json, за настройку отвечает параметр W3CLogging:

"W3CLogging": {
	"IsEnabled": true (1)
	"LogDirectory": "/var/log/docsvision/appserver", (2)
	"LoggingFields": "Date,Time,ServerName,Method,UriStem,UriQuery,ProtocolStatus,TimeTaken,ProtocolVersion,Host,UserAgent,Referer,ConnectionInfoFields", (3)
	"FileSizeLimit": 10485760, (4)
	"RetainedFileCountLimit": 4, (5)
	"FileName": "appserver-w3c-" (6)
}
json
1 Включение/отключение протоколирования событий. Значение по умолчанию: false, в стандартной конфигурации остальные настройки отсутствуют.
2 Путь к журналу.
3 Журналируемые поля. По умолчанию указываются запросы, ответы, заголовки, дата/время (записывается в формате UTC) и имя сервера. Со всеми допустимыми значениями можно ознакомиться в документации Microsoft.
4 Максимальный размер файла журнала, после которого будет создаваться новый. Значение в байтах, по умолчанию 10485760 байт (10 Мб). Цифра 0 означает отсутствие ограничения по размеру.
5 Количество сохраняемых файлов журнала. Допустимые значения от 1 до 10000, по умолчанию используется 4.
6 Префикс имени файла журнала.

Запросы будут записаны в файл /var/log/docsvision/appserver/appserver-w3c-{YYYYMMDD.X}.txt. Настройка альтернативного расширения поддерживается только при протоколировании с NLog, см. подробнее ниже.

Протоколирование запросов с помощью NLog

Если требуется отображать в журналах локальное время или расширить список журналируемой информации, есть возможность подключения Nlog. При этом стандартное журналирование "W3CLogging" будет отключено (вне независимости от значения параметра W3CLogging  IsEnabled.

Протоколирование запросов с использованием NLog имеет ряд преимуществ перед журналированием W3CLogging. NLog предлагает больше параметров логирования (38 против 17),указывает в журнале местное время с точностью до миллисекунды, позволяет задать свои форматы для отображаемых данных и даёт гибкость в управлении файлами журнала.

Чтобы активировать протоколирование запросов с помощью NLog, измените параметры журналирования в параметре NLog  targets:
"NLog": {
   "extensions": [
    { "assembly": "DocsVision.AppServer" } (1)
   ],
   "targets": {
    "w3cFile": {
      "type": "File",
      "fileName": "${gdc:baseLogFolder}/docsvision/appserver/appserver-w3c-${date:format=yyyyMMdd}.${processId}.log",
      "layout": {
         "type": "W3CLoggingLayout",
        "columns": [ (2)
		{ "column": "date" },
		{ "column": "time", "layout": "${longdate}" }, (3)
		{ "column": "c-ip" },
	    ]
      }
    }
   },
   "rules": [
    {
      "logger": "*",
      "minLevel": "Debug",
      "writeTo": "w3cFile"
    }
   ]
}
json
1 Обязательный параметр, если он не указан, NLog не будет записывать обычные сообщения в журнал.
2 Секция задаёт собственный набор колонок. Если список колонок не указан, в журнал будут включены только колонки по умолчанию date, time, c-ip, s-ip, cs-username, s-computername, cs-method, cs-uri-stem, cs-uri-query, sc-statuscode, sc-bytes, cs-bytes, time-taken, cs-host, cs(User-Agent).
3 Формат представления данных колонки может быть изменён. Если формат не указан, будут использоваться значения по умолчанию. В layout можно использовать любые переменные NLog, подробнее см. в документации NLog.
Полный список колонок и допустимых значений для журналирования:
  • date — Дата начала обработки запроса. Значение по умолчанию: ${date:format=yyyy-MM-dd}.

  • time — Время начала обработки запроса. Значение по умолчанию: ${date:format=HH:mm:ss.fff}.

  • appserver-version — Версия Web-клиента. Например 6.1.725+a4c9b271d7. Значение по умолчанию: ${appserver-version}. Для протоколирования запросов сервера приложений аналогичная колонка называется appserver-version.

  • c-ip — IP-адрес клиента. Значение по умолчанию: ${aspnet-request-ip}.

  • cs(Auth-Type) — Тип используемой аутентификации (например, Cookie). Значение по умолчанию: ${aspnet-user-authtype}.

  • cs(Certificate) — Сертификат клиента текущего запроса. Значение по умолчанию: ${aspnet-request-client-certificate}.

  • cs(Content-Type) — Тип контента: text/html, multipart/form-data и т.д.. Значение по умолчанию: ${aspnet-request-contenttype}.

  • cs(Cookie) — Cookie, подробнее о допустимых параметрах в документации NLog. Значение по умолчанию: ${aspnet-request-cookie}.

  • cs(Referer) — Значение поля Referer из заголовка запроса. Значение по умолчанию: ${aspnet-request-referrer}.

  • cs(User-Agent) — User agent. Значение по умолчанию: ${aspnet-request-useragent}.

  • cs-bytes — Получено байтов. Значение по умолчанию: ${aspnet-request-contentlength}.

  • cs-connectionid — Идентификатор соединения, см. в документации Microsoft. Значение по умолчанию: ${aspnet-request-connection-id}.

  • cs-form — Данные формы из запроса. Подробнее о параметрах в документации NLog. Значение по умолчанию: ${aspnet-request-form}.

  • cs-headers — Заголовок запроса. Если нужно взять только определенные заголовки, можно воспользоваться параметрами, подробнее см. в документации NLog. Значение по умолчанию: ${aspnet-request-headers}.

  • cs-host — Значение Host из заголовка запроса. Значение по умолчанию: ${aspnet-request-url:includeScheme=false:includeHost=true:includePath=false}.

  • cs-fullhostname — Полное имя хоста (с портом). Значение по умолчанию: ${aspnet-request-host}.

  • cs-isauthenticated — Состояние аутентификации (значения 0 или 1). Значение по умолчанию: ${aspnet-user-isAuthenticated}.

  • cs-method — Метод (get/post и т.п.). Значение по умолчанию: ${aspnet-request-method}.

  • cs-mvc-action — Вызываемое действие. Значение по умолчанию: ${aspnet-mvc-action}.

  • cs-mvc-controller — Вызываемый контроллер. Значение по умолчанию: ${aspnet-mvc-controller}.

  • cs-posted-body — Значение по умолчанию ${aspnet-request-posted-body}.

    Значения:
    • 1, если:

      • Это запрос HTTP/1.x с ненулевым значением Content-Length или заголовком "Transfer-Encoding: chunked".

      • Это запрос HTTP/2, который не установил флаг END_STREAM на исходном фрейме заголовка.

    • 0, если:

      • Это запрос HTTP/1.x без заголовка Content-Length или "Transfer-Encoding: chunked", или Content-Length равен 0.

      • Это запрос HTTP/1.x с Connection: Upgrade (например, WebSockets). Для этих запросов не существует тела HTTP-запроса, и никакие данные не должны быть получены до тех пор, пока не будет выполнено обновление.

      • Это запрос HTTP/2, который устанавливает END_STREAM на начальном фрейме заголовка.

  • cs-tracking-consent — Согласие на отслеживание (значения 0 или 1). Значение по умолчанию: ${aspnet-request-tracking-consent}.

    Возможные параметры:
    • property.

      Допустимые значения:
      • CanTrack —  Указывает, было ли дано согласие, или если согласие не требуется (1 или 0);

      • HasConsent —  было ли дано согласие;

      • IsConsentNeeded —  требуется ли согласие для данного запроса.

    Пример вызова в собственном формате: ${aspnet-request-tracking-consent:property=CanTrack}.

  • cs-uri-query — Значение по умолчанию: ${aspnet-request-url:includeScheme=false:includeHost=false:includePath=false:includeQueryString=true}. Запрос URI.

  • cs-uri-stem — Ресурс URI. Значение по умолчанию: ${aspnet-request-url:includeScheme=false:includeHost=false}.

  • cs-username — Имя пользователя. Значение по умолчанию: ${aspnet-user-identity}.

  • is-websocket — Является ли запрос запросом на установку WebSocket (0 или 1). Значение по умолчанию: ${aspnet-request-is-web-socket}.

  • s-basepath — Значение ContentRootPath. Значение по умолчанию: ${aspnet-appbasepath}.

  • s-computername --Имя сервера. Значение по умолчанию: ${machinename}.

  • s-environment — Значение ASPNETCORE_ENVIRONMENT. Значение по умолчанию: ${aspnet-environment}.

  • s-ip — IP-адрес сервера. Значение по умолчанию: ${aspnet-request-local-ip}.

  • s-port — Порт. Значение по умолчанию: ${aspnet-request-local-port}.

  • s-sitename — Имя сайта. Значение по умолчанию: ${iis-site-name}.

  • s-webrootpath — WebRootPath. Значение по умолчанию: ${aspnet-webrootpath}.

  • sc(Content-Type) — Тип контента ответа. Значение по умолчанию: ${aspnet-response-contenttype}.

  • sc-bytes — Отправлено байт. Значение по умолчанию: ${aspnet-response-contentlength}.

  • sc-response-has-started — Были ли отправлены заголовки ответа, т.е. начался ли уже ответ или нет. Значения 0 или 1. Значение по умолчанию: ${aspnet-response-has-started}.

  • sc-status — Код статуса ответа (200, 404 и т.д.). Значение по умолчанию: ${aspnet-response-statuscode}.

  • time-taken — Сколько времени заняла обработка запроса (в миллисекундах). Значение по умолчанию: ${aspnet-request-duration}.