Skip to content

Latest commit

 

History

History
37 lines (22 loc) · 2 KB

2_logging.md

File metadata and controls

37 lines (22 loc) · 2 KB

Лог бичих

Програмаас нэмэлт мэдээлэл хэвлэх замаар оношилгоо хийх аргачлал нэлээд түгээмэл хэрэглэгддэг. Тухайлбал програмыг ажиллаж байх үед нь хувьсагчийн утга болон бусад мэдээллийг дэлгэцэнд хэвлэж харах юм. Үүнийг лог бичих гэж хэлдэг.

Лог бичихэд зориулсанlog нэртэй стандарт пакет бий.

log.Printf("Програм амжилттай эхэллээ...")

log.Printf() функц нь дэлгэц рүү лог мэдээллийг хэвлэнэ. Өөр төхөөрөмж рүү хэвлэх бол шинэ лог бичигч обект үүсгэж болно.

Info := log.New(os.Stderr, "INFO: ",
    log.Ldate|log.Ltime|log.Lshortfile)

Info.Println("Hello from logger !")

Энэ жишээнд os.Stderr төхөөрөмж буюу дэлгэц рүү лог хэвлэж байна.

log.New() функц нь шинэ logger үүсгэхэд ашиглагдана. Энэ функцийн эхний параметр нь төхөөрөмж рүү бичих io.Writer төрлийн обект байна, хоёр дахь нь логын өмнө залгах текст, гурав дахь нь хэвлэх форматыг тохируулах нэмэлт флагууд байна.

Хэрэв олон төхөөрөмж рүү зэрэг бичих бол io.MultiWriter төрлийн бичигч обект үүсгэх хэрэгтэй. Жишээ нь дэлгэц болон файл руу зэрэг лог бичих бол дараах байдлаар лог бичигч үүсгэж болно.

file, err := os.OpenFile("file.log",
    os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)

multi := io.MultiWriter(file, os.Stdout)

myLogger := log.New(multi, "PREFIX:",
    log.Ldate|log.Ltime|log.Lshortfile)