package main
import (
"fmt"
"log"
"os"
)
func main() {
//SetFlags函数用来设置标准logger的输出配置
log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
//const (
// // 字位共同控制输出日志信息的细节。不能控制输出的顺序和格式。
// // 在所有项目后会有一个冒号:2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
// Ldate = 1 << iota // 日期:2009/01/23
// Ltime // 时间:01:23:23
// Lmicroseconds // 微秒分辨率:01:23:23.123123(用于增强Ltime位)
// Llongfile // 文件全路径名+行号: /a/b/c/d.go:23
// Lshortfile // 文件无路径名+行号:d.go:23(会覆盖掉Llongfile)
// LstdFlags = Ldate | Ltime // 标准logger的初始值
//)
log.SetPrefix("[PS]")// 日志前缀
log.Println("这是一条优雅的日志。")
v := "优雅的"
log.Printf("这是一个%s日志\n", v)
//fatal系列函数会在写入日志信息后调用os.Exit(1)。Panic系列函数会在写入日志信息后panic。
write_log()
log.Fatalln("这是一天会触发fatal的日志")
log.Panicln("这是一个会触发panic的日志。") //执行后会自动触发一个异常
}
func write_log(){
//O_RDONLY int = syscall.O_RDONLY // 只读模式打开文件
//O_WRONLY int = syscall.O_WRONLY // 只写模式打开文件
//O_RDWR int = syscall.O_RDWR // 读写模式打开文件
//O_APPEND int = syscall.O_APPEND // 写操作时将数据附加到文件尾部
//O_CREATE int = syscall.O_CREAT // 如果不存在将创建一个新文件
//O_EXCL int = syscall.O_EXCL // 和O_CREATE配合使用,文件必须不存在
//O_SYNC int = syscall.O_SYNC // 打开文件用于同步I/O
//O_TRUNC int = syscall.O_TRUNC // 如果可能,打开时清空文件
logFile, err := os.OpenFile("./log.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("open log file failed, err:", err)
return
}
log.SetOutput(logFile)
log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
log.Println("这是一条很普通的日志11。")
log.SetPrefix("[PS]")
log.Println("这是一条很普通的日11志。")
}
版权声明:本文为qq_43035350原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。