1、log简介
loglog
2、log使用
logprintpanicfatal
defer

2.1 简单示例

func main() {
    defer fmt.Println("panic退出前处理")
    log.Println("println日志")
    log.Panic("panic日志")
    log.Fatal("程序退出日志")
}

结果示例(实际结果不是这样的哦,因为panic,fatal会影响程序的执行):

2020/06/02 11:04:17 println日志
2020/06/02 11:04:17 panic日志
2020/06/02 11:04:17 panic退出前处理
2020/06/02 11:04:17 程序退出日志
3、log配置

3.1 标准log配置

loglog
func Flags() int  // 返回标准log输出配置
func SetFlags(flag int)  // 设置标准log输出配置

flag参数

标准日志配置示例

func init()  {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)

}
func main() {
    log.Println("println日志")
}

输出结果:

3.2 日志前缀配置

log
func Prefix() string  // 返回日志的前缀配置
func SetPrefix(prefix string)  // 设置日志前缀

日志前缀配置实例

func init()  {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    log.SetPrefix("success")
}
func main() {
    log.Println("println日志")
}

输出结果:

3.3 日志输出位置配置

loglogfunc SetOutput(w io.Writer)

日志输出位置配置

func init()  {
    log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    logFile, err := os.OpenFile("./c.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
    if err != nil {
        log.Panic("打开日志文件异常")
    }
    log.SetOutput(logFile)
}
func main() {
    log.Println("println日志")
}

结果:日志输出到当前目录下c.log文件中

4、自定义logger

loglogfunc New(out io.Writer, prefix string, flag int) *Logger

示例

var logger *log.Logger

func init()  {
    logFile, err := os.OpenFile("./c.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
    if err != nil {
        log.Panic("打开日志文件异常")
    }
    logger = log.New(logFile, "success", log.Ldate | log.Ltime | log.Lshortfile)
}
func main() {
    logger.Println("自定义logger")
}