package syslog

import "log/syslog"

syslog包提供了一个简单的系统日志服务接口,可以通过使用UNIX domain socketsUDPTCP将消息发送到syslog守护程序。

只需调用一次Dial,因为在写入失败时,syslog客户端将尝试重新连接到服务器并再次写入。

syslog包已归档,不再接受新功能。一些外部包提供更多功能。看到:https://godoc.org/?q=syslog

函数NewLogger

func NewLogger(p Priority, logFlag int) (*log.Logger, error)

NewLogger()创建一个log.Logger,其输出将写入具有指定优先级的系统日志服务,即syslog工具和severity(优先级别)的组合。

  • logFlag是传递给log.New()以创建Logger的标志集(flag set)。

类型Priority

type Priority int

优先级是syslog工具和serverity(优先级别)的组合。例如,LOG_ALERT|LOG_FTP从FTP工具发送警报serverity(优先级别)消息。默认serverity(优先级别)为LOG_EMERG;默认工具是LOG_KERN

const (

    // From /usr/include/sys/syslog.h.
    // These are the same on Linux, BSD, and OS X.
    LOG_EMERG Priority = iota
    LOG_ALERT
    LOG_CRIT
    LOG_ERR
    LOG_WARNING
    LOG_NOTICE
    LOG_INFO
    LOG_DEBUG
)
const (

    // From /usr/include/sys/syslog.h.
    // These are the same up to LOG_FTP on Linux, BSD, and OS X.
    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
)

函数Dail

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

Dial通过连接到指定网络的raddr地址来建立与日志守护程序的连接。每次写入返回的writer都会发送一条日志消息,其中包含工具和serverity(优先级别)和标记。

  • 如果tag为空,则使用os.Args[0]
  • 如果网络为空,Dial将连接到本地syslog服务器。

否则,请参阅net.Dial的文档以获取networkraddr的有效值。

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.")

函数New

func New(priority Priority, tag string) (*Writer, error)

New()建立与系统日志守护程序的新连接。每次写入返回的writer都会发送一条日志消息,其中包含给定的优先级(syslog工具和serverity的组合)和前缀标记。如果tag为空,则使用os.Args[0]

类型Writer

type Writer struct {
    // 包含已过滤或未导出的字段
}

Writer是一个syslog服务的连接。

方法 (*Writer) Alert

func (w *Writer) Alert(m string) error

Alert()记录serverity(优先级别)为LOG_ALERT的消息,忽略传递给New的severity(优先级别)。

方法 (*Writer) Close

func (w *Writer) Close() error

Close关闭与syslog守护程序的连接。

方法 (*Writer) Crit

func (w *Writer) Crit(m string) errors

Crit记录serverity(优先级别)为LOG_CRIT的消息,忽略传递给New的serverity。

方法 (*Writer) Debug

func (w *Writer) Debug(m string) error

Debug会记录serverity(优先级别)为LOG_DEBUG的消息,忽略传递给New的serverity。

方法 (*Writer) Emerg

func (w *Writer) Emerg(m string) error

Emerg记录serverity(优先级别)为LOG_EMERG的消息,忽略传递给New的serverity。

方法 (*Writer) Err

func (w *Writer) Err(m string) error

Err记录serverity(优先级别)为LOG_ERR的消息,忽略传递给New的serverity。

方法 (*Writer) Info

func (w *Writer) Info(m string) error

Info会记录serverity(优先级别)为LOG_INFO的消息,忽略传递给New的serverity。

方法 (*Writer) Notice

func (w *Writer) Notice(m string) error

注意记录serverity(优先级别)为LOG_NOTICE的消息,忽略传递给New的serverity。

方法 (*Writer) Warning

func (w *Writer) Warning(m string) error

Warning会记录serverity(优先级别)为LOG_WARNING的消息,忽略传递给New的serverity。

方法 (*Writer) Write

func (w *Writer) Write(b []byte) (int, error)

Write将日志消息发送到syslog守护程序。

上次修改: 14 April 2020