syslog

package
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2015 License: MIT, Apache-2.0 Imports: 7 Imported by: 0

README

go-syslog Build Status GoDoc GitHub release

Syslog server library for go, build easy your custom syslog server over UDP, TCP or Unix sockets using RFC3164, RFC6587 or RFC5424

Installation

The recommended way to install go-syslog

go get gopkg.in/mcuadros/go-syslog.v2

Examples

How import the package

import "gopkg.in/mcuadros/go-syslog.v2"

Example of a basic syslog UDP server:

channel := make(syslog.LogPartsChannel)
handler := syslog.NewChannelHandler(channel)

server := syslog.NewServer()
server.SetFormat(syslog.RFC5424)
server.SetHandler(handler)
server.ListenUDP("0.0.0.0:514")
server.Boot()

go func(channel syslog.LogPartsChannel) {
    for logParts := range channel {
        fmt.Println(logParts)
    }
}(channel)

server.Wait()

License

MIT, see LICENSE

Documentation

Overview

Syslog server library for go, build easy your custom syslog server over UDP, TCP or Unix sockets using RFC3164 or RFC5424

Index

Constants

This section is empty.

Variables

View Source
var (
	RFC3164   = &format.RFC3164{}   // RFC3164: http://www.ietf.org/rfc/rfc3164.txt
	RFC5424   = &format.RFC5424{}   // RFC5424: http://www.ietf.org/rfc/rfc5424.txt
	RFC6587   = &format.RFC6587{}   // RFC6587: http://www.ietf.org/rfc/rfc6587.txt - octet counting variant
	Automatic = &format.Automatic{} // Automatically identify the format
)

Functions

This section is empty.

Types

type ChannelHandler

type ChannelHandler struct {
	// contains filtered or unexported fields
}

The ChannelHandler will send all the syslog entries into the given channel

func NewChannelHandler

func NewChannelHandler(channel LogPartsChannel) *ChannelHandler

NewChannelHandler returns a new ChannelHandler

func (*ChannelHandler) Handle

func (h *ChannelHandler) Handle(logParts syslogparser.LogParts, messageLength int64, err error)

Syslog entry receiver

func (*ChannelHandler) SetChannel

func (h *ChannelHandler) SetChannel(channel LogPartsChannel)

The channel to be used

type DatagramMessage added in v0.4.0

type DatagramMessage struct {
	// contains filtered or unexported fields
}

type Handler

type Handler interface {
	Handle(syslogparser.LogParts, int64, error)
}

The handler receive every syslog entry at Handle method

type LogPartsChannel

type LogPartsChannel chan syslogparser.LogParts

type ScanCloser

type ScanCloser struct {
	*bufio.Scanner
	// contains filtered or unexported fields
}

type Server

type Server struct {
	// contains filtered or unexported fields
}

func NewServer

func NewServer() *Server

NewServer returns a new Server

func (*Server) Boot

func (s *Server) Boot() error

Starts the server, all the go routines goes to live

func (*Server) GetLastError

func (s *Server) GetLastError() error

Returns the last error

func (*Server) Kill

func (s *Server) Kill() error

Kill the server

func (*Server) ListenTCP

func (s *Server) ListenTCP(addr string) error

Configure the server for listen on a TCP addr

func (*Server) ListenUDP

func (s *Server) ListenUDP(addr string) error

Configure the server for listen on an UDP addr

func (*Server) ListenUnixgram

func (s *Server) ListenUnixgram(addr string) error

Configure the server for listen on an unix socket

func (*Server) SetFormat

func (s *Server) SetFormat(f format.Format)

Sets the syslog format (RFC3164 or RFC5424 or RFC6587)

func (*Server) SetHandler

func (s *Server) SetHandler(handler Handler)

Sets the handler, this handler with receive every syslog entry

func (*Server) SetTimeout

func (s *Server) SetTimeout(millseconds int64)

Sets the connection timeout for TCP connections, in milliseconds

func (*Server) Wait

func (s *Server) Wait()

Waits until the server stops

type TimeoutCloser

type TimeoutCloser interface {
	Close() error
	SetReadDeadline(t time.Time) error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL