package main import ( "log" "os" "path/filepath" ) func main() { curPath, err := filepath.Abs(".") // 当前目录硬盘路径,结尾不带“/” if err != nil { panic("获取当前目录硬盘路径失败:" + err.Error()) } logPath := curPath + "/log" // 日志文件保存目录 logFile := logPath + "/yyyy-mm-dd.log" // 日志文件硬盘路径 // 创建日志文件保存目录(若目录不存在的话) err = os.MkdirAll(logPath, 0755) if err != nil { panic("创建日志文件保存目录失败:" + err.Error()) } // 打开日志文件(若文件不存在则自动创建) file, err := os.OpenFile(logFile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644) if err != nil { panic("打开日志文件失败:" + err.Error()) } // 关闭日志文件 defer func(file *os.File) { _ = file.Close() }(file) // 设置日志参数 log.SetFlags(log.Llongfile | log.Ldate | log.Ltime | log.Lmicroseconds) log.SetPrefix("[debug] ") // 日志前缀,可根据日志类型设为debug、error等以方便筛选 log.SetOutput(file) // 写入日志 log.Printf("%v", "孩儿立志出乡关") log.Printf("%v", "学不成名誓不还") log.Printf("%v", "埋骨何须桑梓地") log.Printf("%v", "人生无处不青山") // 在生成的/log/yyyy-mm-dd.log文件里可以看到如下内容: // ------------------------- 俺是分割线,请无视俺 ------------------------- // [debug] yyyy/mm/dd hh:ii:ss.xxxxxx D:/go/src/cmd/main.go:41: 孩儿立志出乡关 // [debug] yyyy/mm/dd hh:ii:ss.xxxxxx D:/go/src/cmd/main.go:42: 学不成名誓不还 // [debug] yyyy/mm/dd hh:ii:ss.xxxxxx D:/go/src/cmd/main.go:43: 埋骨何须桑梓地 // [debug] yyyy/mm/dd hh:ii:ss.xxxxxx D:/go/src/cmd/main.go:44: 人生无处不青山 }
Copyright © 2024 码农人生. All Rights Reserved