version: 1.10

package syslog

import "log/syslog"

概述

syslog 包提供了一个简单的系统日志服务接口。它能通过 UNIX 域套接字、 UDP 或 TCP ,向 syslog 守护进程发送消息。

Dial 函数只需要调用一次。如果写入失败, syslog 客户端会尝试重新连接服务器并再次写入。

syslog 包处于冻结状态,不会接受新的功能。一些其它包提供更多的功能。参考:

  1. https://godoc.org/?q=syslog

索引

例子

文件

doc.go syslog.go syslog_unix.go

func NewLogger

  1. func NewLogger(p Priority, logFlag int) (log.Logger, error)
NewLogger 函数创建一个 log.Logger 对象,它会把携带优先级的消息写到系统日志服务,优先级是 syslog 设备和严重程度的结合。参数 logFlag 和 log.New 函数的 flag 参数作用相同。

type Priority

  1. type Priority int
Priority 是 syslog 设备和严重程度的结合。比如, LOG_ALERT | LOG_FTP 发送一个警告消息到 FTP 设备。默认的严重程度是 LOG_EMERG ,默认的设备是 LOG_KERN 。
  1. const (
  2.  
  3. // From /usr/include/sys/syslog.h.
  4. // These are the same on Linux, BSD, and OS X.
  5. LOG_EMERG Priority = iota
  6. LOG_ALERT
  7. LOG_CRIT
  8. LOG_ERR
  9. LOG_WARNING
  10. LOG_NOTICE
  11. LOG_INFO
  12. LOG_DEBUG
  13. )
  1. const (
  2.  
  3. // From /usr/include/sys/syslog.h.
  4. // These are the same up to LOG_FTP on Linux, BSD, and OS X.
  5. LOG_KERN Priority = iota << 3
  6. LOG_USER
  7. LOG_MAIL
  8. LOG_DAEMON
  9. LOG_AUTH
  10. LOG_SYSLOG
  11. LOG_LPR
  12. LOG_NEWS
  13. LOG_UUCP
  14. LOG_CRON
  15. LOG_AUTHPRIV
  16. LOG_FTP
  17.  
  18. LOG_LOCAL0
  19. LOG_LOCAL1
  20. LOG_LOCAL2
  21. LOG_LOCAL3
  22. LOG_LOCAL4
  23. LOG_LOCAL5
  24. LOG_LOCAL6
  25. LOG_LOCAL7
  26. )

type Writer

  1. type Writer struct {
  2. // 包含过滤的或未导出的字段
  3. }
Writer 是一个 syslog 服务器的链接。

func Dial

  1. func Dial(network, raddr string, priority Priority, tag string) (Writer, error)
Dial 函数与由参数 raddr 和 network 指定的日志守护进程建立一个连接。每次写都会发送一个携带设备和严重程度(由参数 priority 指定)标签的日志消息到该函数返回的 writer 对象。如果参数 tag 为空,会使用 os.Args[0] 。如果参数 network 为空, Dial 函数将连接本地 syslog 服务。否则,请参考文档来了解 net.Dial 函数的 network 参数和 raddr 参数的有效的取值范围。 Example: 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

  1. func New(priority Priority, tag string) (Writer, error)
New 函数与系统日志守护进程建立一个新的连接。每次写都会发送一个携带指定优先级( syslog 设备和严重程度的结合)和前缀标签的日志消息到该函数返回的 writer 对象。如果参数 tag 为空, os.Args[0] 会被使用。

func (Writer) Alert

  1. func (w Writer) Alert(m string) error
Alert 方法记录一个严重程度是 LOG_ALERT 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Close

  1. func (w Writer) Close() error
Close 方法关闭与 syslog 守护进程的连接。

func (Writer) Crit

  1. func (w Writer) Crit(m string) error
Crit 方法记录一个严重程度是 LOG_CRIT 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Debug

  1. func (w Writer) Debug(m string) error
Debug 方法记录一个严重程度是 LOG_DEBUG 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Emerg

  1. func (w Writer) Emerg(m string) error
Emerg 方法记录一个严重程度是 LOG_EMERG 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Err

  1. func (w Writer) Err(m string) error
Err 方法记录一个严重程度是 LOG_ERR 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Info

  1. func (w Writer) Info(m string) error
Info 方法记录一个严重程度是 LOG_INFO 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Notice

  1. func (w Writer) Notice(m string) error
Notice 方法记录一个严重程度是 LOG_NOTICE 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Warning

  1. func (w Writer) Warning(m string) error
Warning 方法记录一个严重程度是 LOG_WARNING 的消息,忽略 New 函数里的 severity 参数。

func (Writer) Write

  1. func (w *Writer) Write(b []byte) (int, error)
Write 方法发送一个日志消息到 syslog 守护进程。

Bugs

  • 这个包不支持 Windows 。鉴于 syslog 包处于冻结状态, 我们鼓励 Windows 用户使用标准库外的包。想了解更多背景,请参考 https://golang.org/issue/1108。
  • 这个包不支持 Plan 9。
  • 这个包不支持 NaCl (Native Client) 。