Created
January 15, 2019 10:35
-
-
Save bylatt/ecdb018de6258c406994c624908d7bb7 to your computer and use it in GitHub Desktop.
Revisions
-
bylatt created this gist
Jan 15, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,37 @@ #todayilearned #onunixandgo - log เป็นสิ่งจำเป็น เอาไว้ debug, track, alert พวก monitoring ทั้งหลายถ้าไม่ส่องจาก log เอาเองก็ต้องมี plugin เป็น forwarder ซึ่งก็มาเกาะจาก log อยู่ดี - ใน unix มี system log (syslog on mac, rsyslog on linux) ส่วนใหญ่เก็บไว้ใน /var/log แล้วแต่ config - System log เป็น client - server อยาก write log ก็ forward message with severity via udp/tcp/socket ไปหา facilities - facilities ประกอบไปด้วย kernel, user, auth, mail, etc... - severity ก็พวก debug, info, warning, error, etc... - ใน Go มี standard package log เอาไว้ write log - ใน Go มี standard package syslog เอาไว้ write system log - standard package log มันไม่แคร์ severity อ่ะ ซึ่งเอาเข้าจริงมันก็แค่ text ข้างใน file อ่ะนะ example: write system mail log in Go ```go package main import ( "log" "log/syslog" ) func main() { sLog, err := syslog.New(syslog.LOG_MAIL, "MYFUCKINGLOGGER") if err != nil { log.Fatal(err) } log.setOutput(sLog) log.Prinln("Hello mail") } ``` ```bash cat /var/log/mail.log => Jan 15 17:15:31 Lattapons-MacBook-Pro MYFUCKINGLOGGER[22381]: 2019/01/15 17:15:31 Hello mail ``` ปล. ปกติ standard package log ถ้าเราไม่ set output ให้มัน มันจะ write ใส่ standard error เชื่อผม ผมอ่านโค้ดมา :D