version: 1.10
package syslog
import "log/syslog"
概述
syslog 包提供了一个简单的系统日志服务接口。它能通过 UNIX 域套接字、 UDP 或 TCP ,向 syslog 守护进程发送消息。
Dial 函数只需要调用一次。如果写入失败, syslog 客户端会尝试重新连接服务器并再次写入。
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
例子
文件
doc.go syslog.go syslog_unix.go
func NewLogger ¶
NewLogger 函数创建一个 log.Logger 对象,它会把携带优先级的消息写到系统日志服务,优先级是 syslog 设备和严重程度的结合。参数 logFlag 和 log.New 函数的 flag 参数作用相同。
type Priority ¶
Priority 是 syslog 设备和严重程度的结合。比如, LOG_ALERT | LOG_FTP 发送一个警告消息到 FTP 设备。默认的严重程度是 LOG_EMERG ,默认的设备是 LOG_KERN 。
- type Priority int
- 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
- )
type Writer ¶
Writer 是一个 syslog 服务器的链接。
- type Writer struct {
- // 包含过滤的或未导出的字段
- }
func Dial ¶
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 ¶
New 函数与系统日志守护进程建立一个新的连接。每次写都会发送一个携带指定优先级( syslog 设备和严重程度的结合)和前缀标签的日志消息到该函数返回的 writer 对象。如果参数 tag 为空, os.Args[0] 会被使用。
func (Writer) Alert ¶
Alert 方法记录一个严重程度是 LOG_ALERT 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Close ¶
Close 方法关闭与 syslog 守护进程的连接。
func (Writer) Crit ¶
Crit 方法记录一个严重程度是 LOG_CRIT 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Debug ¶
Debug 方法记录一个严重程度是 LOG_DEBUG 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Emerg ¶
Emerg 方法记录一个严重程度是 LOG_EMERG 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Err ¶
Err 方法记录一个严重程度是 LOG_ERR 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Info ¶
Info 方法记录一个严重程度是 LOG_INFO 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Notice ¶
Notice 方法记录一个严重程度是 LOG_NOTICE 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Warning ¶
Warning 方法记录一个严重程度是 LOG_WARNING 的消息,忽略 New 函数里的 severity 参数。
func (Writer) Write ¶
Write 方法发送一个日志消息到 syslog 守护进程。
Bugs
- ☞ 这个包不支持 Windows 。鉴于 syslog 包处于冻结状态, 我们鼓励 Windows 用户使用标准库外的包。想了解更多背景,请参考 https://golang.org/issue/1108。
- ☞ 这个包不支持 Plan 9。
- ☞ 这个包不支持 NaCl (Native Client) 。