BslLogExporter

Экспорт логов 1С в любое место, с помощью скриптов C# / 1C

Основные фичи

  • Поддержка написание скриптов - экспортеров на 2 языках:
  • Hot reload: изменения в конфигурации или источнике логов (добавлена ИБ в кластер и тд) приведет к обновлению процесса выгрузки логов в приложении без его перезапуска
  • Экспорт из конкретной папки логов и / или папки кластера с возможностью фильтрации информационных баз
  • Возможность выгрузки в режиме реально времени, либо "задним числом" с сохранением прогресса и возобнавлении с последней записи
  • Возможность выгрузки записей логов сразу в несколько мест
  • Возможен запуск как консольного приложения, windows сервиса или в контейнере

Настройка процесса выгрузки производится через файл AppConfiguration.json

Пример конфигурационного файла лежит в папке examples

Так же парамеры можно задать через переменные окружения с префиксом BslLogExporter

Например:

BslLogExporter:Processing:Buffer=5000

Описание вариантов запуска:

Все варианты запуска поддерживают возможность переопределения рабочей директории

Параметр WorkingDir

В заданной папке будет произведен поиск AppConfiguration.json

Так же от нее будут строиться все относительные пути

Указать папку можно двумя способами:

  1. Установить переменную окружения BslLogExporter:WorkingDir=C:\MyFolder
  2. Установить аргумент командной строки /WorkingDir=C:\MyFolder
- Запуск из командной строки -

Пример команды:

C:\exporter\BslLogExporter.exe /WorkingDir=D:\exporter_config_folder

- Запуск как службы Windows -

Пример команды:

sc create BslLogExporter binpath= "C:\exporter\BslLogExporter.exe /WorkingDir=%workingDir%"

- Запуск в docker контейнер -

Пример файла docker-compose в корне проекта

PS: Не тестировалось :(

Логирование

Логирование осуществляется через Serilog

В данный момент доступен вывод в:

Возможные проблемы

  • Не компилируются csx скрипты с ошибкой NU1100

Решение: В рабочую директорию необходимо поместить файл NuGet.Config, пример файла в папке examples