chumric
@chumric

Как парсить много файлов при помощи TailFile?

Для слежения за файлами лога использую TailFile (github.com/hpcloud/tail)

Для одного файла это выглядит так
t, err := tail.TailFile(v, tail.Config{Follow: true, ReOpen: true, MustExist: true})


Мне необходимо следить за несколькими логами, список которых я получаю из YML

В Go я новичек, и пробую по РНР-шному

var t = map[int]string
for k, value := range config.Settings.Logs {
   t[k], err := tail.TailFile(value, tail.Config{Follow: true, ReOpen: true, MustExist: true})
}


На что, резонно получаю ошибку
./main.go:37:6: type map[int]string is not an expression
./main.go:40:4: non-name t[k] on left side of :=


Какой объявить массив и как в него засунуть результаты от TailFile ?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
var t = map[int]string
Это вы не массив пытаетесь объявить, а хэшмапу. Правильно вот так:
t := map[int]string{}

Но вам бы подошёл вариант и со слайсом:
var t []string
for k, value := range config.Settings.Logs {
   elem, err := tail.TailFile(value, tail.Config{Follow: true, ReOpen: true, MustExist: true})
   ...... тут надо ошибку проверить .....
   t = append(t, elem)
}


Я, правда, не уверен, что у вас там действительно тип string возвращается из TailFile, но это уже за пределами данного вопроса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы