Задать вопрос
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 Простой Комментировать
Решения вопроса 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, но это уже за пределами данного вопроса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы