?
本文檔使用 php中文網手冊 發(fā)布
import "log/syslog"
概述
索引
示例
軟件包系統(tǒng)日志為系統(tǒng)日志服務提供了一個簡單的界面。它可以使用 UNIX 域套接字,UDP 或 TCP 將消息發(fā)送到 syslog 守護進程。
只需調用一次 Dial 即可。在寫入失敗時,系統(tǒng)日志客戶端將嘗試重新連接到服務器并重新寫入。
syslog 軟件包被凍結,并且不接受新的函數。一些外部軟件包提供更多功能。參見:
https://godoc.org/?q=syslog
func NewLogger(p Priority, logFlag int) (*log.Logger, error)
type Priority
type Writer
func Dial(network, raddr string, priority Priority, tag string) (*Writer, error)
func New(priority Priority, tag string) (*Writer, error)
func (w *Writer) Alert(m string) error
func (w *Writer) Close() error
func (w *Writer) Crit(m string) error
func (w *Writer) Debug(m string) error
func (w *Writer) Emerg(m string) error
func (w *Writer) Err(m string) error
func (w *Writer) Info(m string) error
func (w *Writer) Notice(m string) error
func (w *Writer) Warning(m string) error
func (w *Writer) Write(b []byte) (int, error)
Bugs
Dial
doc.go syslog.go syslog_unix.go
func NewLogger(p Priority, logFlag int) (*log.Logger, error)
NewLogger 創(chuàng)建一個 log.Logger,它的輸出以指定的優(yōu)先級寫入系統(tǒng)日志服務,這是 syslog 設施和嚴重性的組合。logFlag 參數是通過 log.New 創(chuàng)建記錄器的標志集。
優(yōu)先級是系統(tǒng)日志設施和嚴重性的組合。例如,LOG_ALERT | LOG_FTP 從 FTP 設備發(fā)送警報嚴重性消息。默認嚴重性是 LOG_EMERG;默認設施是 LOG_KERN。
type Priority int
const ( // 來自 /usr/include/sys/syslog.h。 // 這些在Linux,BSD和OS X上是相同的。 LOG_EMERG Priority = iota LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_NOTICE LOG_INFO LOG_DEBUG)
const ( // 來自 /usr/include/sys/syslog.h。 // 這些與Linux,BSD和OS X上的LOG_FTP相同。 LOG_KERN Priority = iota << 3 LOG_USER LOG_MAIL LOG_DAEMON LOG_AUTH LOG_SYSLOG LOG_LPR LOG_NEWS LOG_UUCP LOG_CRON LOG_AUTHPRIV LOG_FTP LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7)
Writer 是與系統(tǒng)日志服務器的連接。
type Writer struct { // 包含已過濾或未導出的字段}
func Dial(network, raddr string, priority Priority, tag string) (*Writer, error)
Dial 通過連接到指定網絡上的地址 raddr 來建立到日志守護程序的連接。每次寫入返回的作者都會發(fā)送一條日志消息,其中包含設施和嚴重性(來自優(yōu)先級)和標記。如果標簽為空,則使用 os.Args0。如果網絡為空,撥號將連接到本地系統(tǒng)日志服務器。否則,請參閱 net.Dial 的文檔以獲取網絡和 raddr 的有效值。
package mainimport ("fmt""log""log/syslog")func main() { sysLog, err := syslog.Dial("tcp", "localhost:1234", syslog.LOG_WARNING|syslog.LOG_DAEMON, "demotag")if err != nil { log.Fatal(err)} fmt.Fprintf(sysLog, "This is a daemon warning with demotag.") sysLog.Emerg("And this is a daemon emergency with demotag.")}
func New(priority Priority, tag string) (*Writer, error)
New 建立到系統(tǒng)日志守護進程的新連接。每次寫入返回的寫入程序都會發(fā)送一條具有給定優(yōu)先級(syslog 設施和嚴重性的組合)和前綴標記的日志消息。如果標簽為空,則使用 os.Args0。
func (w *Writer) Alert(m string) error
Alert 會記錄嚴重性為 LOG_ALERT 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Close() error
關閉 Close 與 syslog 守護進程的連接。
func (w *Writer) Crit(m string) error
Crit 會記錄嚴重性為 LOG_CRIT 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Debug(m string) error
Debug 會記錄嚴重性為 LOG_DEBUG 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Emerg(m string) error
Emerg 記錄一條嚴重性為 LOG_EMERG 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Err(m string) error
Err 記錄嚴重性為 LOG_ERR 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Info(m string) error
Info 會記錄一條嚴重性為 LOG_INFO 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Notice(m string) error
通知會記錄一條嚴重性為 LOG_NOTICE 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Warning(m string) error
警告會記錄嚴重性為 LOG_WARNING 的消息,忽略傳遞給 New 的嚴重性。
func (w *Writer) Write(b []byte) (int, error)
Write 向 syslog 守護進程發(fā)送日志消息。
? 該軟件包未在 Windows 上實現。當系統(tǒng)日志包被凍結時,鼓勵 Windows 用戶使用標準庫外的包。
? 該計劃未在計劃9中實施。
? 該包不在NaCl(Native Client)上實現。