РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
670 of 1593 menu

Функция log.SetOutput

Функция log.SetOutput предназначена для изменения места записи логов пакета log. По умолчанию логи выводятся в стандартный поток ошибок (os.Stderr). С помощью этой функции можно перенаправить вывод в файл, сетевой сокет, буфер или любой другой объект, который реализует интерфейс io.Writer. В единственный параметр функция принимает объект, куда будут записываться логи.

Синтаксис

log.SetOutput(w io.Writer)

Пример

Давайте перенаправим вывод логов в файл:

package main import ( "log" "os" ) func main() { file, err := os.Create("app.log") if err != nil { log.Fatal(err) } defer file.Close() log.SetOutput(file) log.Println("This message goes to the log file") }

В результате выполнения кода в текущей директории будет создан файл app.log с записанным в него сообщением.

Пример

Давайте перенаправим вывод логов в буфер:

package main import ( "bytes" "fmt" "log" ) func main() { var buf bytes.Buffer log.SetOutput(&buf) log.Print("Log message 1") log.Print("Log message 2") fmt.Println(buf.String()) }

Результат выполнения кода:

"2026/09/04 12:34:56 Log message 1 2026/09/04 12:34:56 Log message 2"

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

Пример

Давайте вернем вывод логов в стандартный поток ошибок после перенаправления:

package main import ( "bytes" "log" "os" ) func main() { var buf bytes.Buffer log.SetOutput(&buf) log.Println("Written to buffer") log.SetOutput(os.Stderr) log.Println("Written to stderr") }

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

Смотрите также

  • функцию log.SetFlags,
    которая устанавливает флаги форматирования логов
  • функцию log.SetPrefix,
    которая устанавливает префикс для логов
  • функцию log.Print,
    которая выводит сообщение в лог
  • функцию log.New,
    которая создает новый логгер с указанным выводом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить