Восстановление репозитория
This commit is contained in:
commit
44c6b59a40
176
README.md
Normal file
176
README.md
Normal file
|
@ -0,0 +1,176 @@
|
|||
## О программе
|
||||
|
||||
Программа для обработки журналов 1С.
|
||||
|
||||
В качестве входных данных используются файлы журналов "20230126000001.lgp" (Для обработки берется файл имя которого совпадает с текущей датой).
|
||||
В качестве словаря для подстановки значений используется файл "1Cv8.lgf".
|
||||
|
||||
Обработанные данные могут быть сохранены в файл как в JSON так и в CSV форматах. Также возможна отправка обработанных данных в ElasticSearch.
|
||||
|
||||
Программа работает как в Linux так и Windows.
|
||||
|
||||
!!! Внимание !!!
|
||||
|
||||
С целью ускорения работы запуск процесса отправки записей в эластик сделан параллельно, т.е. каждая запись отправляется в отдельном потоке (goroutine) поэтому для исключения переполнения буфера соединений в процедуру чтения файла (func tail()) введена задержка в 5 миллисекунд (time.Sleep(5 * time.Millisecond)). Это костыль и пока нормального решения я не придумал.
|
||||
|
||||
Типы ообъектов в словаре
|
||||
1 – пользователи; 2 – компьютеры; 3 – приложения; 4 – события; 5 – метаданные; 6 – серверы; 7 – основные порты; 8 – вспомогательные порты.
|
||||
|
||||
|
||||
## Опции командной строки
|
||||
|
||||
```
|
||||
Usage of /tmp/go-build847101717/b001/exe/log-processor:
|
||||
-config string
|
||||
Файл настроек (default "config.ini")
|
||||
-create-config
|
||||
Создать файл настроек
|
||||
-debug
|
||||
Выводить данные в консоль
|
||||
-dict-file string
|
||||
Файл со словарём (DICT_FILE) (default "1Cv8.lgf")
|
||||
-dir-config string
|
||||
Каталог для файлов настройки (DIR_CFG) (default ".config")
|
||||
-dir-in string
|
||||
Каталог для исходных файлов (DIR_IN) (default "in")
|
||||
-dir-worklog string
|
||||
Каталог для лога работы (DIR_LOG) (default "log")
|
||||
-dir-out string
|
||||
Каталог для обработанных файлов (DIR_OUT) (default "out")
|
||||
-dir-temp string
|
||||
Каталог для временных файлов (TEMP) (default "tmp")
|
||||
-es-bulk
|
||||
Пакетная вставка записей в Elastic Search
|
||||
-es-bulk-quantity int
|
||||
Количество записей в одном запросе для пакетной вставки (default 10)
|
||||
-es-index-prefix string
|
||||
Префикс имени индекса Elastic Search (ELASTICSEARCH_INDEX_PREFIX)
|
||||
-es-password string
|
||||
Пароль пользователя Elastic Search (ELASTICSEARCH_PASSWORD)
|
||||
-es-send
|
||||
Отправлять данные в ElasticSearch
|
||||
-es-skip-verify
|
||||
Пропустить проверку сертификатов при подключении к Elastic Search
|
||||
-es-url string
|
||||
Адрес узла Elastic Search (ELASTICSEARCH_URL)
|
||||
-es-user string
|
||||
Имя пользователя Elastic Search (ELASTICSEARCH_USER)
|
||||
-file string
|
||||
Имя файла для обработки. Если требуется обработать один файл
|
||||
-log-file-ext string
|
||||
Расширение файлов с журналами (обрабатываемых логов) (LOG_FILE_EXT) (default ".lgp")
|
||||
-object-types string
|
||||
Список типов объектов словаря для выборки, разделённый запятой (OBJECT_TYPES) (default "1,2,3,4,5,6,7,8")
|
||||
-out-format string
|
||||
Формат данных на выходе (csv, json) (OUT_FORMAT) (default "csv")
|
||||
-run-win-service
|
||||
Запуск как службы Windows
|
||||
-tail-sleep string
|
||||
Задержка чтения входного файла. Разрешены обозначения 'ns', 'us' ('µs'), 'ms', 's', 'm','h') (default "5ms")
|
||||
-tz-offset string
|
||||
Сдвиг по времени от UTC (default "+03:00")
|
||||
-worklog-out string
|
||||
Направление вывода журнала работы программы (console, file) (default "file")
|
||||
-write-out-file
|
||||
Запись обработанных данных в файл
|
||||
```
|
||||
|
||||
## Настройка
|
||||
|
||||
Передача параметров для работы программы возможна через файл настроек, через командную строку и через переменные окружения (но не все).
|
||||
Приоритетным является конфигурационный файл. Т.е. при запуске проверяется наличие файла конфигурации, и в случае если его нет проверяются параметры командной строки, если опции командной строки не заданы то проверяются переменные окружения.
|
||||
|
||||
Для создания файла настроек программу следует запустить с указанием опций:
|
||||
|
||||
```
|
||||
log-processor -dir-config ~/tmp/123 -config processor.ini -create-config
|
||||
```
|
||||
|
||||
Пути к каталогам и файлам можно переопределить через указание соответствующих параметров при запуске. После правки параметров порграмму можно запускать.
|
||||
|
||||
## Использование
|
||||
|
||||
При первом запуске будут созданы недостающие каталоги (в случае отсутствия). После запуска программа получает последний файл (по дате модификации) в каталоге заданном опцией "-dir-in". И запускает потоковый процесс обработки данных. По мере чтения файла, производится проверка входного каталога на наличие новых файлов, и при обнаружении оного процесс чтения открытого файла будет остановлен и запущена обработка нового.
|
||||
|
||||
Позиция указателя в открытом файле сохраняется во временном файле типа "20230126000001.lgp.tmp", который будет удален при нормальном завершении работы с файлом. При ручном прерывании процесса обработки или аварийном завершении программы и последующем запуске процесс чтения файла (и запись выходного файла) будет продолжен с того места на котором произошло завершение.
|
||||
|
||||
Программа позволяет отправлять обработанные данные в ElasticSearch/OpenSearch опция "-es-send", сохранять в файлах формата csv и json: "-write-out-file" и "-out-format" соответсвенно, выводить в консоль - "-debug". Для всех операций используются соответствующие ключи запуска или параметры в файле настроек.
|
||||
|
||||
Для уменьшения количества записей можно задать список событий, которые будут исключены из итоговой выдачи (как в файл так и в эластик), разделенный точкой с запятой. Для этого используется параметр в файле конфигурации "excludeEvent":
|
||||
|
||||
```
|
||||
excludeEvent=_$Transaction$_.Begin;\
|
||||
_$Transaction$_.Commit
|
||||
```
|
||||
|
||||
## Запуск как служба Windows
|
||||
|
||||
Перед запуском службу следует зарегистрировать в системе средствами Windows:
|
||||
|
||||
```
|
||||
sc.exe create "1C log processor 1" binPath="c:\1c-logprocessor\1c-logprocessor.exe -dir-config C:\1c-logprocessor\.config\ -run-win-service" DisplayName="1C log processor" type=own start=auto
|
||||
```
|
||||
|
||||
Пути можно указать свои. Управление службой осуществляется через штатную оснастку системы.
|
||||
|
||||
## Запуск нескольких экземпляров службы
|
||||
|
||||
Для одновременной обработки нескольких журналов, от разных процессов 1С (БД) возможно запустить несколько экземпляров парсера. Для этого требуется создать конфигурационные файлы, для каждого процесса 1С свой.
|
||||
В конфигурации указать уникальные полные пути dirIn, dirOut, dirTmp, имя индекса elasticsearch. Также наименование службы. И после этого зарегистрировать службу:
|
||||
|
||||
```
|
||||
sc.exe create "1C log processor 1" binPath="c:\1c-logprocessor\1c-logprocessor.exe -dir-config C:\1c-logprocessor\.config\ -config config-1.ini -run-win-service" DisplayName="1C log processor 1" type=own start=auto
|
||||
sc.exe create "1C log processor 2" binPath="c:\1c-logprocessor\1c-logprocessor.exe -dir-config C:\1c-logprocessor\.config\ -config config-2.ini -run-win-service" DisplayName="1C log processor 2" type=own start=auto
|
||||
...
|
||||
```
|
||||
|
||||
## Обработка заданного файла
|
||||
|
||||
Для запуска обработки одного файла в режиме коммандной строки, достаточно указать имя файла используя опцию --file. Файл должен быть расположен в кататоге указанном в --dir-in. После обработки этого файла программа звершит свою работу.
|
||||
|
||||
## Пример конфигурационного файла
|
||||
|
||||
```
|
||||
[General]
|
||||
; Каталог для входящих данных
|
||||
dirIn=in
|
||||
; Каталог для исходящих данных
|
||||
dirOut=out
|
||||
; Каталог для временных файлов
|
||||
dirTemp=tmp
|
||||
; Каталог для журнала работы программы
|
||||
dirLog=log
|
||||
; Имя файла словаря
|
||||
dictFile=1Cv8.lgf
|
||||
; Список объектов для выборки из словаря
|
||||
objectTypes=1,2,3,4,5,6,7,8
|
||||
; Расширение файлов журнало 1С (входящих)
|
||||
logFileExtention=.lgp
|
||||
|
||||
[ElasticSearch]
|
||||
; Включене отправки данных в ElasticSearch
|
||||
sendToEs=false
|
||||
; Адрес сервера ElasticSearch
|
||||
esUrl=https://elastic:9200
|
||||
; Пользователь для подключсения к ElasticSearch
|
||||
esUser=user_name
|
||||
; Пароль пользователя ElasticSearch
|
||||
esPassword=user_password
|
||||
; Отключить проверку SSL сертификатов при подключении
|
||||
esSkipVerify=false
|
||||
; Перфикс индекса в ElasticSearch
|
||||
esIndexPrefix=test_log
|
||||
|
||||
[Processing]
|
||||
; Включение вывода обработанной информации в файл
|
||||
writeOutFile=false
|
||||
; Формат выходного файла
|
||||
outFormat=csv
|
||||
; Сдвиг времени (временная зона)
|
||||
timeZoneOffset=+03:00
|
||||
; Задержка чтения входного файла между строками
|
||||
; Разрешены обозначения 'ns', 'us' ('µs'), 'ms', 's', 'm','h'
|
||||
readDuration=5ms
|
||||
; Список событий (поле "Event"), исключенных из выдачи, разделенный ";"
|
||||
excludeEvent=
|
||||
```
|
18
go.mod
Normal file
18
go.mod
Normal file
|
@ -0,0 +1,18 @@
|
|||
module log-reader
|
||||
|
||||
go 1.19
|
||||
|
||||
require github.com/hpcloud/tail v1.0.0
|
||||
|
||||
// replace github.com/hpcloud/tail v1.0.0 => /home/svkalinin/Проекты/git-repo-copy/tail
|
||||
|
||||
require (
|
||||
github.com/fsnotify/fsnotify v1.6.0 // indirect
|
||||
github.com/kardianos/service v1.2.2 // indirect
|
||||
github.com/opensearch-project/opensearch-go/v2 v2.2.0 // indirect
|
||||
golang.org/x/sys v0.4.0 // indirect
|
||||
gopkg.in/fsnotify.v1 v1.4.7 // indirect
|
||||
gopkg.in/fsnotify/fsnotify.v1 v1.4.7 // indirect
|
||||
gopkg.in/ini.v1 v1.67.0 // indirect
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||
)
|
77
go.sum
Normal file
77
go.sum
Normal file
|
@ -0,0 +1,77 @@
|
|||
github.com/aws/aws-sdk-go v1.44.180/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
|
||||
github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
|
||||
github.com/aws/aws-sdk-go-v2/config v1.18.8/go.mod h1:5XCmmyutmzzgkpk/6NYTjeWb6lgo9N170m1j6pQkIBs=
|
||||
github.com/aws/aws-sdk-go-v2/credentials v1.13.8/go.mod h1:lVa4OHbvgjVot4gmh1uouF1ubgexSCN92P6CJQpT0t8=
|
||||
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21/go.mod h1:ugwW57Z5Z48bpvUyZuaPy4Kv+vEfJWnIrky7RmkBvJg=
|
||||
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI=
|
||||
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE=
|
||||
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28/go.mod h1:yRZVr/iT0AqyHeep00SZ4YfBAKojXz08w3XMBscdi0c=
|
||||
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21/go.mod h1:lRToEJsn+DRA9lW4O9L9+/3hjTkUzlzyzHqn8MTds5k=
|
||||
github.com/aws/aws-sdk-go-v2/service/sso v1.12.0/go.mod h1:wo/B7uUm/7zw/dWhBJ4FXuw1sySU5lyIhVg1Bu2yL9A=
|
||||
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0/go.mod h1:TZSH7xLO7+phDtViY/KUp9WGCJMQkLJ/VpgkTFd5gh8=
|
||||
github.com/aws/aws-sdk-go-v2/service/sts v1.18.0/go.mod h1:+lGbb3+1ugwKrNTWcf2RT05Xmp543B06zDFTwiTLp7I=
|
||||
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
|
||||
github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw=
|
||||
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
|
||||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||
github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
|
||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
|
||||
github.com/kardianos/service v1.2.2 h1:ZvePhAHfvo0A7Mftk/tEzqEZ7Q4lgnR8sGz4xu1YX60=
|
||||
github.com/kardianos/service v1.2.2/go.mod h1:CIMRFEJVL+0DS1a3Nx06NaMn4Dz63Ng6O7dl0qH0zVM=
|
||||
github.com/opensearch-project/opensearch-go/v2 v2.2.0 h1:6RicCBiqboSVtLMjSiKgVQIsND4I3sxELg9uwWe/TKM=
|
||||
github.com/opensearch-project/opensearch-go/v2 v2.2.0/go.mod h1:R8NTTQMmfSRsmZdfEn2o9ZSuSXn0WTHPYhzgl7LCFLY=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
|
||||
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
|
||||
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
|
||||
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
|
||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
|
||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||
golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18=
|
||||
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
|
||||
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
|
||||
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
|
||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||
gopkg.in/fsnotify/fsnotify.v1 v1.4.7 h1:XNNYLJHt73EyYiCZi6+xjupS9CpvmiDgjPTAjrBlQbo=
|
||||
gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE=
|
||||
gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA=
|
||||
gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
|
||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
|
||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
1539
log-processor.go
Normal file
1539
log-processor.go
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user