@modesta
В Go есть несколько пакетов для логирования, наиболее популярными из которых являются log
и logrus
.
log
- это стандартный пакет для логирования в Go, который обеспечивает базовую функциональность логирования. Для использования этого пакета необходимо импортировать его в ваш код:
1
|
import "log" |
Затем вы можете использовать функции Print
, Printf
и Println
для записи сообщений в лог:
1 2 3 |
log.Print("This is a log message") log.Printf("This is a %s message", "formatted") log.Println("This is a log message on a new line") |
logrus
- это более гибкий и расширяемый пакет для логирования в Go. Он поддерживает различные уровни логирования, различные форматы сообщений и позволяет настраивать вывод логов для каждого уровня.
Для использования logrus
необходимо сначала установить его с помощью команды:
1
|
go get github.com/sirupsen/logrus |
Затем вы можете импортировать его в ваш код:
1
|
import "github.com/sirupsen/logrus" |
Для записи сообщений в лог вы можете использовать функции Info
, Warn
, Error
и т.д.:
1 2 3 4 5 6 |
logrus.Info("This is an info message") logrus.Warn("This is a warning message") logrus.WithFields(logrus.Fields{ "animal": "walrus", "size": 10, }).Info("A group of walrus emerges from the ocean") |
Кроме того, logrus
позволяет настроить формат сообщения, уровень логирования и вывод логов в файл или другие места назначения. Это делает его более гибким и настраиваемым по сравнению со стандартным пакетом log
.
@modesta
Вот пример простого использования log и logrus для логирования в Go:
Использование пакета log:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
package main import ( "log" "os" ) func main() { // Запись лога в стандартный вывод log.Print("This is a log message") // Запись лога в файл file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) } defer file.Close() log.SetOutput(file) log.Print("This is a log message in a file") } |
Использование пакета logrus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package main import ( "os" "github.com/sirupsen/logrus" ) func main() { // Создание нового логгера logrus logger := logrus.New() // Настройка уровня логирования logger.SetLevel(logrus.DebugLevel) // Запись лога в файл file, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) if err != nil { logger.Fatal(err) } defer file.Close() logger.SetOutput(file) // Запись лога с различными полями logger.WithFields(logrus.Fields{ "animal": "walrus", "size": 10, }).Info("A group of walrus emerges from the ocean") logger.Warn("This is a warning message") logger.Error("This is an error message") } |
Оба примера демонстрируют базовое использование логирования с использованием пакетов log и logrus. Вы можете настроить формат сообщений, уровень логирования и вывод для соответствия вашим потребностям.