golang package log
阿新 • • 發佈:2019-02-08
element long line nal 程序 fail def err gin
package main import ( "log" "os" ) var logger *log.Logger func main() { file, err := os.OpenFile("test.log", os.O_APPEND|os.O_CREATE, 666) if err != nil { log.Fatalln("fail to create test.log file!") } defer file.Close() logger = log.New(file, "", log.LstdFlags|log.Lshortfile) // 日誌文件格式:log包含時間及文件行數 log.Println("輸出日誌到命令行終端") logger.Println("將日誌寫入文件") logger.SetFlags(log.LstdFlags | log.Lshortfile) // 設置日誌格式 log.Panicln("在命令行終端輸出panic,並中斷程序執行") logger.Panicln("在日誌文件中寫入panic,並中斷程序執行") log.Fatal("在命令行終端輸出日誌並執行os.exit(1)") logger.Fatal("在日誌文件中寫入日誌並執行os.exit(1)") }
Logger結構體所有字段都是私有的,提供了一個工廠函數獲取結構體實例
// New creates a new Logger. The out variable sets the // destination to which log data will be written. // The prefix appears at the beginning of each generated log line. // The flag argument defines the logging properties. func New(out io.Writer, prefix string, flag int) *Logger { return &Logger{out: out, prefix: prefix, flag: flag} }
flag參數的常量
const ( Ldate = 1 << iota // the date in the local time zone: 2009/01/23 Ltime // the time in the local time zone: 01:23:23 Lmicroseconds // microsecond resolution: 01:23:23.123123. assumes Ltime. Llongfile // full file name and line number: /a/b/c/d.go:23 Lshortfile // final file name element and line number: d.go:23. overrides Llongfile LUTC // if Ldate or Ltime is set, use UTC rather than the local time zone LstdFlags = Ldate | Ltime // initial values for the standard logger )
golang package log