Spec-Zone.ru › Go

Пакет syslog

  • import "log/syslog"
  • Обзор
  • Указатель
  • Примеры

Обзор

Пакет syslog предоставляет простой интерфейс к службе системного журнала. Он может отправлять сообщения демону syslog с использованием сокетов домена UNIX, UDP или TCP.

Требуется только один вызов 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)
  • Ошибки

Примеры

Dial

Файлы пакета

doc.go syslog.go syslog_unix.go

func NewLogger

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

NewLogger создает log.Logger, вывод которого записывается в службу системного журнала с указанным приоритетом — комбинацией категории (facility) и важности (severity) syslog. Аргумент logFlag представляет собой набор флагов, передаваемый в log.New для создания Logger.

type Priority

Priority представляет собой комбинацию категории (facility) и важности (severity) syslog. Например, LOG_ALERT | LOG_FTP отправляет сообщение с уровнем важности alert из категории 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
)

type 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. Если 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. Если 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.

  • ☞

    Начиная с Darwin macOS 12.X (Monterey), демон syslog от Apple больше не прослушивает сокет домена UNIX, а вместо этого использует собственную систему Apple Unified Logging (AUL), поэтому этот пакет больше не будет работать. См. https://developer.apple.com/documentation/os/logging.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/log/syslog/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API