Как сделать красивый вывод логов в файл?

Для красивого вывода логов в файл в Go можно использовать стороннюю библиотеку logrus, которая предоставляет мощный и гибкий функционал для логирования.

Для начала необходимо установить данную библиотеку. Для этого выполните следующую команду в командной строке:

go get github.com/sirupsen/logrus

После установки необходимо подключить библиотеку в вашем коде. Для этого добавьте следующую строку:

import logrus "github.com/sirupsen/logrus"

Далее, чтобы настроить вывод логов в файл, нужно создать экземпляр logrus.Logger и настроить его:

log := logrus.New()
file, err := os.OpenFile("logs.txt", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)

if err == nil {
    log.SetOutput(file)
} else {
    log.Info("Failed to open log file")
}

В приведенном выше коде мы создаем новый экземпляр логгера и открываем файл для записи логов с помощью функции os.OpenFile. Затем мы устанавливаем этот файл в качестве вывода логов с помощью метода SetOutput.

Теперь, чтобы использовать этот логгер в вашем коде, вы можете использовать методы логгера, такие как Info, Error, Warn и т.д. Например:

log.Info("This is an informational log message")
log.Error("This is an error log message")

Каждый вызов логгера будет записываться в файл "logs.txt" в указанном формате. Однако логи еще не будут отображаться в красивом формате.

Для того чтобы сделать логи более красивыми, можно настроить форматирование логов с помощью хуков. Например, чтобы добавить временную метку и уровень логирования, можно использовать следующий код:

log.SetFormatter(&logrus.TextFormatter{
    TimestampFormat: "2006-01-02 15:04:05",
    FullTimestamp: true,
})

Этот код устанавливает форматировщик логов в виде текстового формата и добавляет временную метку в формате "2006-01-02 15:04:05". Теперь логи будут выводиться в файл в более читаемом и красивом виде.

В итоге, для создания красивого вывода логов в файл в Go, необходимо использовать библиотеку logrus и настроить форматирование логов с помощью TextFormatter. Это позволит вам записывать логи в файл в красивом формате, добавлять временную метку и уровень логирования.