在 CentOS 系統上使用 Golang 日志過濾,可以通過以下幾種方法實現:
Golang 的日志庫通常支持設置日志級別,例如 logrus 和 zap。通過設置日志級別,可以控制輸出的日志信息。例如,使用 logrus:
package main
import (
"github.com/sirupsen/logrus"
)
func main() {
logrus.SetLevel(logrus.InfoLevel) // 設置日志級別為 Info
logrus.Debug("這是一條 Debug 級別的日志")
logrus.Info("這是一條 Info 級別的日志")
logrus.Warn("這是一條 Warn 級別的日志")
logrus.Error("這是一條 Error 級別的日志")
}
在這個例子中,只有 Info、Warn 和 Error 級別的日志會被輸出,Debug 級別的日志會被過濾掉。
例如,使用 logrus 將日志輸出到文件:
package main
import (
"github.com/sirupsen/logrus"
"os"
)
func main() {
logrus.SetOutput(os.Stdout) // 設置日志輸出到標準輸出
logrus.Debug("這是一條 Debug 級別的日志")
logrus.Info("這是一條 Info 級別的日志")
logrus.Warn("這是一條 Warn 級別的日志")
logrus.Error("這是一條 Error 級別的日志")
}
然后,在 CentOS 系統上使用 grep
命令行工具過濾日志文件:
grep "Info" log.txt
這將顯示所有包含 “Info” 的日志行。
journalctl
命令進行過濾:例如,使用 logrus 將日志輸出到 syslog:
package main
import (
"github.com/sirupsen/logrus"
"os"
"syscall"
)
func main() {
logrus.SetOutput(os.Stdout)
logrus.SetReportCaller(true)
logrus.Debug("這是一條 Debug 級別的日志")
logrus.Info("這是一條 Info 級別的日志")
logrus.Warn("這是一條 Warn 級別的日志")
logrus.Error("這是一條 Error 級別的日志")
logrus.SetOutput(syscall.Syslog(syslog.LOG_INFO, "myapp"))
logrus.Info("這是一條發送到 syslog 的 Info 級別的日志")
}
然后,在 CentOS 系統上使用 journalctl
命令過濾日志:
journalctl -u myapp.service --since "2021-09-01" --until "2021-09-30"
這將顯示 myapp 服務在指定時間范圍內的所有日志。
這些方法可以幫助你在 CentOS 系統上使用 Golang 日志進行過濾。你可以根據自己的需求選擇合適的方法。