在Golang中,你可以使用标准库"log"来记录日志。但是,如果你想要记录CentOS系统事件,你可能需要访问系统日志文件,例如/var/log/messages或/var/log/syslog。为了实现这个功能,你可以使用第三方库,如"go-systemd/journal"(用于systemd日志)或"go-syslog/syslog"(用于syslog)。
下面是一个使用"go-syslog/syslog"库记录CentOS系统事件的示例:
go get github.com/go-syslog/syslog
main.go的文件,并添加以下代码:package main
import (
"fmt"
"log"
"os"
"time"
syslog "github.com/go-syslog/syslog"
)
func main() {
// 设置日志记录器
logger, err := syslog.New(syslog.LOG_INFO, "MyApp")
if err != nil {
log.Fatalf("无法创建日志记录器: %v", err)
}
defer logger.Close()
// 设置日志输出到文件
logFile, err := os.OpenFile("/var/log/myapp.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("无法打开日志文件: %v", err)
}
defer logFile.Close()
// 设置日志输出到标准输出
multiWriter := io.MultiWriter(logFile, os.Stdout)
logger.SetOutput(multiWriter)
// 记录系统事件
logger.Info("程序启动")
// 模拟程序运行
for {
time.Sleep(1 * time.Second)
logger.Info("程序仍在运行")
}
}
go run main.go
这个示例程序将记录系统事件到/var/log/myapp.log文件和标准输出。你可以根据需要修改日志级别、日志文件路径等。
注意:在运行此程序之前,请确保你有足够的权限访问/var/log目录。你可能需要使用sudo运行程序。