在Debian系统上,你可以使用Golang的标准库log
包来定制日志格式。以下是一个简单的示例,展示了如何设置日志的前缀、时间戳和日志级别:
package main
import (
"fmt"
"log"
"os"
"time"
)
func main() {
// 设置日志前缀
log.SetPrefix("MYAPP: ")
// 设置日志时间戳格式
log.SetFlags(log.LstdFlags | log.Lshortfile)
// 设置日志级别
log.SetOutput(os.Stdout)
// 自定义日志输出格式
customFormatter := func(prefix string, flag int, v interface{}) {
timestamp := time.Now().Format("2006-01-02 15:04:05")
fmt.Printf("[%s] [%s] %v
", timestamp, prefix, v)
}
// 使用自定义日志格式
log.SetFormatter(customFormatter)
// 打印日志
log.Println("这是一条普通日志")
log.Printf("这是一条带格式化的日志: %d
", 42)
}
在Debian上安装Golang(如果尚未安装):
sudo apt-get update
sudo apt-get install golang
编译并运行你的Golang项目:
go run main.go
这将输出类似以下格式的日志:
[2023-08-01 12:34:56] [MYAPP: ] 这是一条普通日志
[2023-08-01 12:34:56] [MYAPP: ] 这是一条带格式化的日志: 42
如果你需要更高级的日志功能,可以考虑使用第三方日志库,如logrus
或zap
。这些库提供了更多的配置选项和功能,例如结构化日志、日志级别等。
例如,使用logrus
自定义日志格式:
package main
import (
"github.com/sirupsen/logrus"
"os"
)
func main() {
// 创建一个新的日志记录器
logger := logrus.New()
// 将日志输出到标准输出和日志文件
logFile, err := os.OpenFile("app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil {
logger.Fatal("Unable to create log file: ", err)
}
defer logFile.Close()
logger.SetOutput(io.MultiWriter(os.Stdout, logFile))
// 设置日志级别为Debug
logger.SetLevel(logrus.DebugLevel)
// 记录日志信息
logger.Debug("This is a debug log message.")
logger.Infof("This is an info log message with arguments: %s, %d", "hello", 123)
}
通过以上步骤,你可以在Debian系统上自定义Golang日志的格式。