...

Package syslog

import "github.com/go-kit/log/syslog"
Overview
Index
Examples

Overview ▾

Package syslog provides a Logger that writes to syslog.

func NewSyslogLogger

func NewSyslogLogger(w SyslogWriter, newLogger func(io.Writer) log.Logger, options ...Option) log.Logger

NewSyslogLogger returns a new Logger which writes to syslog in syslog format. The body of the log message is the formatted output from the Logger returned by newLogger.

Example (DefaultPrioritySelector)

Code:

// Normal syslog writer
w, err := gosyslog.New(gosyslog.LOG_INFO, "experiment")
if err != nil {
    fmt.Println(err)
    return
}

// syslog logger with logfmt formatting
logger := syslog.NewSyslogLogger(w, log.NewLogfmtLogger)
logger.Log("msg", "info because of default")
logger.Log(level.Key(), level.DebugValue(), "msg", "debug because of explicit level")

type Option

Option sets a parameter for syslog loggers.

type Option func(*syslogLogger)

func PrioritySelectorOption

func PrioritySelectorOption(selector PrioritySelector) Option

PrioritySelectorOption sets priority selector function to choose syslog priority.

type PrioritySelector

PrioritySelector inspects the list of keyvals and selects a syslog priority.

type PrioritySelector func(keyvals ...interface{}) gosyslog.Priority

type SyslogWriter

SyslogWriter is an interface wrapping stdlib syslog Writer.

type SyslogWriter interface {
    Write([]byte) (int, error)
    Close() error
    Emerg(string) error
    Alert(string) error
    Crit(string) error
    Err(string) error
    Warning(string) error
    Notice(string) error
    Info(string) error
    Debug(string) error
}