/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package kmsg import ( "fmt" "log" "os" "golang.org/x/sys/unix" ) // Setup configures the log package to write to the kernel ring buffer via // /dev/kmsg. func Setup(prefix string) (*os.File, error) { out, err := os.OpenFile("/dev/kmsg", os.O_RDWR|unix.O_CLOEXEC|unix.O_NONBLOCK|unix.O_NOCTTY, 0666) if err != nil { return nil, fmt.Errorf("failed to open /dev/kmsg: %w", err) } log.SetOutput(out) log.SetPrefix(prefix + " ") log.SetFlags(0) return out, nil }