非常教程

Go参考手册

日志 | log

日志系统 | log/syslog

  • import "log/syslog"
  • 概述
  • 索引
  • 示例

概述

软件包系统日志为系统日志服务提供了一个简单的界面。它可以使用 UNIX 域套接字,UDP 或 TCP 将消息发送到 syslog 守护进程。

只需调用一次 Dial 即可。在写入失败时,系统日志客户端将尝试重新连接到服务器并重新写入。

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(查看源代码)

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)上实现。

日志 | log相关

Go

Go 是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。

主页 https://golang.org/
源码 https://go.googlesource.com/go
发布版本 1.9.2

Go目录

1.档案 | archive
2.缓冲区 | bufio
3.内置 | builtin
4.字节 | bytes
5.压缩 | compress
6.容器 | container
7.上下文 | context
8.加密 | crypto
9.数据库 | database
10.调试 | debug
11.编码 | encoding
12.错误 | errors
13. expvar
14.flag
15. fmt
16. go
17.散列 | hash
18.html
19.图像 | image
20.索引 | index
21.io
22.日志 | log
23.数学 | math
24. math/big
25.math/bits
26.math/cmplx
27.math/rand
28.拟态 | mime
29.net
30.net/http
31. net/mail
32. net/rpc
33.net/smtp
34. net/textproto
35. net/url
36.os
37.路径 | path
38.插件 | plugin
39.反射 | reflect
40.正则表达式 | regexp
41.运行时 | runtime
42.排序算法 | sort
43.转换 | strconv
44.字符串 | strings
45.同步 | sync
46.系统调用 | syscall
47.测试 | testing
48.文本 | text
49.时间戳 | time
50.unicode
51.不安全性 | unsafe
52.Go 语言数据类型
53.Go 语言基础语法
54.Go 语言结构
55.Go 语言 select 语句
56.Go 语言 switch 语句
57.Go 语言 if 语句嵌套
58.Go 语言 if…else 语句
59.Go 语言 if 语句
60.Go 语言运算符
61.Go 语言常量
62.Go 语言函数闭包
63.Go 语言函数作为实参
64.Go 语言函数引用传递值
65.Go 语言函数值传递值
66.Go 语言函数
67.Go 语言 goto 语句
68.Go 语言 continue 语句
69.Go 语言 break 语句
70.Go 语言循环嵌套
71.Go 语言 for 循环
72.Go 语言结构体
73.Go 语言指针作为函数参数
74.Go 语言指向指针的指针
75.Go 语言指针数组
76.Go 语言指针
77.Go 语言向函数传递数组
78.Go 语言多维数组
79.Go 语言变量作用域
80.Go 语言函数方法
81.Go 错误处理
82.Go 语言接口
83.Go 语言类型转换
84.Go 语言递归函数
85.Go 语言Map(集合)
86.Go 语言范围(Range)
87.Go 语言切片(Slice)
88.Go 并发
89.Go fmt.Sprintf 格式化字符串