去语言中日志处理、日志包的使用

  

Golang提供了原生日志库“日志”,使用简单方便,本文以代码为例进行说明介绍。

  
 <代码>包主要
  
  导入(
  “操作系统”
  “日志”
  “fmt”
  )
  
  函数main () {//打开日志文件//第二个参数为打开文件的模式,可选如下:/*
  O_RDONLY//只读模式打开文件
  O_WRONLY//只写模式打开文件
  O_RDWR//读写模式打开文件
  O_APPEND//写操作时将数据附加到文件尾部
  O_CREATE//如果不存在将创建一个新文件
  O_EXCL//和O_CREATE配合使用,文件必须不存在
  O_SYNC//打开文件用于同步I/O
  O_TRUNC//如果可能,打开时清空文件
  *///第三个参数为文件权限,请参考linux文件权限,664在这里为八进制,代表:rw-rw-r—
  日志文件,犯错:=os.OpenFile (“e:/H罩尽?操作系统。O_WRONLY |操作系统。O_CREATE |操作系统。O_APPEND, 0644)
  如果犯错!=nil {
  log.Fatal (err)
  }//第一个参数为输出io,可以是文件也可以是实现了该接口的对象,此处为日志文件;第二个参数为自定义前缀;第三个参数为输出日志的格式选项,可多选组合//第三个参数可选如下:/*
  Ldate=1//日期:2009/01/23
  Ltime=2//时间:01:23:23
  Lmicroseconds=4//微秒分辨率:01:23:23.123123(用于增强Ltime位)
  Llongfile=8//文件全路径名+行号:/a/b/c/d.go: 23
  Lshortfile=16//文件无路径名+行号:d.go: 23(会覆盖掉Llongfile)
  LstdFlags=Ldate | Ltime//标准记录器的初始值
  */debugLog:=日志。新(日志文件,“(调试)”,log.Ldate | log.Ltime | log.Llongfile)//日志输出
  debugLog.Print(“日志测试打印输出,处理同fmt.Print”)
  debugLog.Println(“日志测试Println输出,处理同fmt.Println”)
  debugLog.Printf(“日志测试% s输出,处理同fmt。Printf”、“Printf“)//日志输出,同时直接终止程序,后续的操作都不会执行
  debugLog.Fatal(“日志测试致命的输出,处理等价于:debugLog.Print()后,再执行os.Exit (1)”)
  debugLog.Fatalln(“日志测试Fatalln输出,处理等价于:debugLog.Println()后,再执行os.Exit (1)”)
  debugLog.Fatalf(“日志测试% s输出,处理等价于:debugLog.Print()后,再执行os.Exit (1)”、“Fatalf”)//日志输出,同时抛出异常,可用恢复捕捉
  推迟func () {
  如果r:=()恢复;r !=nil {
  fmt。Println(“===========",右)
  }
  }()
  debugLog.Panic(“日志测试恐慌输出,处理等价于:debugLog.Print()后,再执行恐慌()”)
  debugLog.Panicln(“日志测试Panicln输出,处理等价于:debugLog.Println()后,再执行恐慌()”)
  debugLog.Panicf(“日志测试% s输出,处理等价于:debugLog.Printf()后,再执行恐慌()”、“Panicf”)
  
  fmt。Println(“前缀为:“,debugLog.Prefix())//前缀为:(调试)
  fmt。Println(“输出选项为:“,debugLog.Flags())//输出选项为:11//设置前缀
  debugLog.SetPrefix(“[信息]”)//设置输出选项
  debugLog.SetFlags (log.LstdFlags)
  fmt。Println(“前缀为:“,debugLog.Prefix())//前缀为:[信息]
  fmt。Println(“输出选项为:“,debugLog.Flags())//输出选项为:3
  }
   
  

说明:以上代码执行时要分段注释后执行,否则执行到:

  
 <代码> debugLog.Fatal(“日志测试致命的输出,处理等价于:debugLog.Print()后,再执行os.Exit(1)”)  
  

便会终止

去语言中日志处理、日志包的使用