在Golang中,处理错误日志通常涉及到以下几个步骤:
import (
"log"
"os"
)
func main() {
logger := log.New(os.Stdout, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
}
这里,我们创建了一个新的日志记录器,它将日志输出到标准输出(os.Stdout),并在每条日志消息前添加"ERROR: "前缀。log.Ldate、log.Ltime和log.Lshortfile是日志标志,分别表示日期、时间和文件名及行号。
func main() {
logger := log.New(os.Stdout, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
err := someFunction()
if err != nil {
logger.Println(err)
}
}
在这个例子中,我们调用了一个名为someFunction的函数,它返回一个错误。如果发生错误,我们使用logger.Println(err)将错误记录到日志中。
func main() {
errorLogger := log.New(os.Stdout, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
warningLogger := log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)
err := someFunction()
if err != nil {
errorLogger.Println(err)
} else if warning := someOtherFunction(); warning != nil {
warningLogger.Println(warning)
}
}
在这个例子中,我们创建了两个日志记录器:errorLogger和warningLogger。我们分别使用这两个记录器记录错误和警告级别的日志。
os.OpenFile函数创建一个文件,并将其传递给log.New函数。func main() {
file, err := os.OpenFile("error.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
log.Fatal(err)
}
defer file.Close()
logger := log.New(file, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
err = someFunction()
if err != nil {
logger.Println(err)
}
}
在这个例子中,我们创建了一个名为error.log的文件,并将其传递给log.New函数。所有记录到logger的日志都将写入这个文件。