golang 寫日志到syslog


應用程序可以通過 UNIX domain sockets, UDP or TCP,向syslog守護進程發送日志。syslog守護進程可以在遠端。
這樣,就可以不用單獨收集應用程序的日志了。

golang提供了syslog 包,只需要調用Dial(),就可以連接syslog服務器,然后發送消息。
在寫失敗的情況下,syslog client會嘗試重連syslog服務器,並重寫。

Dial定義如下

func Dial(network, raddr string, priority Priority, tag string) (*Writer, error)

Dial 建立一個到log守護進程的連接,這個守護進程的地址由參數raddr指定,連接方式由參數network定義(可以為tcp, udp,或空)。

如果network是空,Dial會連接到本地的syslog服務器。

下面簡單舉例說明。

package main

import (
        "log"
        "log/syslog"
)

func main() {
        sysLog, err := syslog.Dial("", "",syslog.LOG_ERR, "Saturday")
        if err != nil {
                log.Fatal(err)
        }
       
        sysLog.Emerg("Hello world!")
}

程序執行后,查看/var/log/system.log文件,可以看到最新的一條日志內容如下:

Feb 16 20:52:44 admin Saturday[86161]: Hello world!

參考

syslog


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM