Экспорт логов 1С в любое место, с помощью скриптов C# / 1C
- Поддержка написание скриптов - экспортеров на 2 языках:
- C# - Dotnet script (требуется установленный dotnet sdk) https://github.com/dotnet-script/dotnet-script#prerequisites
- 1C - OneScript https://github.com/EvilBeaver/OneScript
- Hot reload: изменения в конфигурации или источнике логов (добавлена ИБ в кластер и тд) приведет к обновлению процесса выгрузки логов в приложении без его перезапуска
- Экспорт из конкретной папки логов и / или папки кластера с возможностью фильтрации информационных баз
- Возможность выгрузки в режиме реально времени, либо "задним числом" с сохранением прогресса и возобнавлении с последней записи
- Возможность выгрузки записей логов сразу в несколько мест
- Возможен запуск как консольного приложения, windows сервиса или в контейнере
Настройка процесса выгрузки производится через файл AppConfiguration.json
Пример конфигурационного файла лежит в папке examples
Так же парамеры можно задать через переменные окружения с префиксом BslLogExporter
Например:
BslLogExporter:Processing:Buffer=5000
Все варианты запуска поддерживают возможность переопределения рабочей директории
Параметр WorkingDir
В заданной папке будет произведен поиск AppConfiguration.json
Так же от нее будут строиться все относительные пути
Указать папку можно двумя способами:
- Установить переменную окружения BslLogExporter:WorkingDir=C:\MyFolder
- Установить аргумент командной строки /WorkingDir=C:\MyFolder
Пример команды:
C:\exporter\BslLogExporter.exe /WorkingDir=D:\exporter_config_folder
Пример команды:
sc create BslLogExporter binpath= "C:\exporter\BslLogExporter.exe /WorkingDir=%workingDir%"
Пример файла docker-compose в корне проекта
PS: Не тестировалось :(
Логирование осуществляется через Serilog
В данный момент доступен вывод в:
- Файл: https://github.com/serilog/serilog-sinks-file
- Консоль: https://github.com/serilog/serilog-sinks-console
- Не компилируются csx скрипты с ошибкой NU1100
Решение: В рабочую директорию необходимо поместить файл NuGet.Config, пример файла в папке examples