Пакет syslog
Обзор
Пакет syslog предоставляет простой интерфейс к службе системного журнала. Он может отправлять сообщения в демона syslog с использованием сокетов доменной системы UNIX, UDP или TCP.
Необходимо только одно вызов Dial. При ошибках записи клиент syslog попытается повторно подключиться к серверу и выполнить запись снова.
Пакет syslog заморожен и не принимает новые возможности. Некоторые внешние пакеты предоставляют больше функциональности. См.:
https://godoc.org/?q=syslog
Индекс
Примеры
Файлы пакета
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 для создания Logger.
тип 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 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
) тип Writer
Writer — это соединение с сервером syslog.
type Writer struct {
// contains filtered or unexported fields
}
func Dial
func Dial(network, raddr string, priority Priority, tag string) (*Writer, error)
Dial устанавливает соединение с демоном журнала, подключаясь к адресу raddr в указанной сети. Каждая запись в возвращаемом writer отправляет сообщение журнала с установкой и уровнем важности (из priority) и тегом. Если tag пусто, используется os.Args[0]. Если network пусто, Dial подключается к локальному серверу syslog. В противном случае, см. документацию по net.Dial для допустимых значений network и raddr.
Пример
Код:
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 устанавливает новое соединение с демоном системного журнала. Каждая запись в возвращаемом writer отправляет сообщение журнала с заданным приоритетом (комбинацией системной установки syslog и уровня важности) и префиксом тега. Если tag пусто, используется os.Args[0].
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
Notice записывает сообщение с уровнем важности LOG_NOTICE, игнорируя уровень важности, заданный в New.
func (*Writer) Warning
func (w *Writer) Warning(m string) error
Warning записывает сообщение с уровнем важности LOG_WARNING, игнорируя уровень важности, заданный в New.
func (*Writer) Write
func (w *Writer) Write(b []byte) (int, error)
Write отправляет сообщение журнала в демон syslog.
Ошибки
- ☞
Этот пакет не реализован в Windows. Поскольку пакет syslog заморожен, пользователям Windows рекомендуется использовать пакет за пределами стандартной библиотеки. Для справки см. https://golang.org/issue/1108.
- ☞
Этот пакет не реализован в Plan 9.
© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/log/syslog/