Go 中文开发手册
日志系统 | log/syslog (log) - Go 中文开发手册
import "log/syslog"概述索引示例
概述
软件包系统日志为系统日志服务提供了一个简单的界面。它可以使用 UNIX 域套接字,UDP 或 TCP 将消息发送到 syslog 守护进程。
只需调用一次 Dial 即可。在写入失败时,系统日志客户端将尝试重新连接到服务器并重新写入。
syslog 软件包被冻结,并且不接受新的函数。一些外部软件包提供更多功能。参见:
https://godoc.org/?q=syslog
索引
func NewLogger(p Priority, logFlag int) (*log.Logger, error)type Prioritytype Writerfunc 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(查看源代码)
func NewLogger(p Priority, logFlag int) (*log.Logger, error)
NewLogger 创建一个 log.Logger,它的输出以指定的优先级写入系统日志服务,这是 syslog 设施和严重性的组合。logFlag 参数是通过 log.New 创建记录器的标志集。
type Priority(查看源代码)
优先级是系统日志设施和严重性的组合。例如,LOG_ALERT | LOG_FTP 从 FTP 设备发送警报严重性消息。默认严重性是 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
)
type Writer(查看源代码)
Writer 是与系统日志服务器的连接。
type Writer struct {
// 包含已过滤或未导出的字段
}
func Dial(查看源代码)
func Dial(network, raddr string, priority Priority, tag string) (*Writer, error)
Dial 通过连接到指定网络上的地址 raddr 来建立到日志守护程序的连接。每次写入返回的作者都会发送一条日志消息,其中包含设施和严重性(来自优先级)和标记。如果标签为空,则使用 os.Args0。如果网络为空,拨号将连接到本地系统日志服务器。否则,请参阅 net.Dial 的文档以获取网络和 raddr 的有效值。
示例
package main
import (
"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(查看源代码)
func New(priority Priority, tag string) (*Writer, error)
New 建立到系统日志守护进程的新连接。每次写入返回的写入程序都会发送一条具有给定优先级(syslog 设施和严重性的组合)和前缀标记的日志消息。如果标签为空,则使用 os.Args0。
func (*Writer) Alert(查看源代码)
func (w *Writer) Alert(m string) error
Alert 会记录严重性为 LOG_ALERT 的消息,忽略传递给 New 的严重性。
func (*Writer) Close(查看源代码)
func (w *Writer) Close() error
关闭 Close 与 syslog 守护进程的连接。
func (*Writer) Crit(查看源代码)
func (w *Writer) Crit(m string) error
Crit 会记录严重性为 LOG_CRIT 的消息,忽略传递给 New 的严重性。
func (*Writer) Debug(查看源代码)
func (w *Writer) Debug(m string) error
Debug 会记录严重性为 LOG_DEBUG 的消息,忽略传递给 New 的严重性。
func (*Writer) Emerg(查看源代码)
func (w *Writer) Emerg(m string) error
Emerg 记录一条严重性为 LOG_EMERG 的消息,忽略传递给 New 的严重性。
func (*Writer) Err(查看源代码)
func (w *Writer) Err(m string) error
Err 记录严重性为 LOG_ERR 的消息,忽略传递给 New 的严重性。
func (*Writer) Info(查看源代码)
func (w *Writer) Info(m string) error
Info 会记录一条严重性为 LOG_INFO 的消息,忽略传递给 New 的严重性。
func (*Writer) Notice(查看源代码)
func (w *Writer) Notice(m string) error
通知会记录一条严重性为 LOG_NOTICE 的消息,忽略传递给 New 的严重性。
func (*Writer) Warning(查看源代码)
func (w *Writer) Warning(m string) error
警告会记录严重性为 LOG_WARNING 的消息,忽略传递给 New 的严重性。
func (*Writer) Write(查看源代码)
func (w *Writer) Write(b []byte) (int, error)
Write 向 syslog 守护进程发送日志消息。
Bugs
☞ 该软件包未在 Windows 上实现。当系统日志包被冻结时,鼓励 Windows 用户使用标准库外的包。有关背景信息,请参阅https://golang.org/issue/1108。☞ 该计划未在计划9中实施。☞ 该包不在NaCl(Native Client)上实现。