MST

星途 面试题库

面试题:Go中如何自定义日志包日志输出格式的基础实现

在Go语言中,使用标准库的`log`包,简述如何自定义日志输出格式,比如在每条日志前添加时间戳。请给出简单示例代码。
27.7万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

在Go语言中,使用log包自定义日志输出格式,可以通过log.SetFlags函数来实现。以下是添加时间戳的示例代码:

package main

import (
    "log"
    "time"
)

func main() {
    // 设置日志标志,添加时间戳
    log.SetFlags(log.LstdFlags)
    log.Println("这是一条带时间戳的日志")
}

在上述代码中,log.SetFlags(log.LstdFlags)设置日志标志,LstdFlags包含日期和时间戳。log.Println输出的日志前就会带上时间戳。

若想自定义更复杂的格式,可以结合log.SetPrefixlog.SetFlags

package main

import (
    "log"
    "time"
)

func main() {
    // 设置日志前缀
    log.SetPrefix(time.Now().Format("2006-01-02 15:04:05 ") + "[INFO] ")
    // 禁用默认的时间戳标志,因为我们手动在Prefix里添加了时间
    log.SetFlags(0)
    log.Println("这是一条自定义格式的日志")
}

在这个示例中,通过log.SetPrefix设置了日志前缀,包含时间戳和日志级别[INFO],并通过log.SetFlags(0)禁用了默认的时间戳标志。