remote_syslog2: github.com/papertrail/remote_syslog2/syslog Index | Files

package syslog

import "github.com/papertrail/remote_syslog2/syslog"

The syslog package provides a syslog client.

Unlike the core log/syslog package it uses the newer rfc5424 syslog protocol, reliably reconnects on failure, and supports TLS encrypted TCP connections.

Index

Package Files

packet.go priorities.go syslog.go

Variables

var ErrPriority = fmt.Errorf("Not a designated priority")

Returned when looking up a non-existant facility or severity

type Logger Uses

type Logger struct {
    Packets        chan Packet
    Errors         chan error
    ClientHostname string
    // contains filtered or unexported fields
}

A Logger is a connection to a syslog server. It reconnects on error. Clients log by sending a Packet to the logger.Packets channel.

func Dial Uses

func Dial(clientHostname, network, raddr string, rootCAs *x509.CertPool, connectTimeout time.Duration, writeTimeout time.Duration, tcpMaxLineLength int) (*Logger, error)

Dial connects to the syslog server at raddr, using the optional certBundle, and launches a goroutine to watch logger.Packets for messages to log.

func (*Logger) Close Uses

func (l *Logger) Close() error

func (*Logger) Write Uses

func (l *Logger) Write(packet Packet)

type Packet Uses

type Packet struct {
    Severity Priority
    Facility Priority
    Hostname string
    Tag      string
    Time     time.Time
    Message  string
}

A Packet represents an RFC5425 syslog message

func Parse Uses

func Parse(line string) (Packet, error)

A convenience function for testing

func (Packet) Generate Uses

func (p Packet) Generate(max_size int) string

Generate creates a RFC5424 syslog format string for this packet.

func (Packet) Priority Uses

func (p Packet) Priority() Priority

The combined Facility and Severity of this packet. See RFC5424 for details.

type Priority Uses

type Priority int

A Syslog Priority is a combination of Severity and Facility.

const (
    SevEmerg Priority = iota
    SevAlert
    SevCrit
    SevErr
    SevWarning
    SevNotice
    SevInfo
    SevDebug
)

RFC5424 Severities

const (
    LogKern Priority = iota
    LogUser
    LogMail
    LogDaemon
    LogAuth
    LogSyslog
    LogLPR
    LogNews
    LogUUCP
    LogCron
    LogAuthPriv
    LogFTP
    LogNTP
    LogAudit
    LogAlert
    LogAt
    LogLocal0
    LogLocal1
    LogLocal2
    LogLocal3
    LogLocal4
    LogLocal5
    LogLocal6
    LogLocal7
)

RFC5424 Facilities

func Facility Uses

func Facility(name string) (Priority, error)

Facility returns the named facility. It returns ErrPriority if the facility does not exist.

func Severity Uses

func Severity(name string) (Priority, error)

Severity returns the named severity. It returns ErrPriority if the severity does not exist.

Package syslog imports 9 packages (graph) and is imported by 5 packages. Updated 2016-11-06. Refresh now. Tools for package owners.