syslog

package module
v0.0.0-...-f324903 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2024 License: MIT Imports: 9 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, RFC5424 and RFC6587

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 format.LogParts, messageLength int64, err error)

Syslog entry receiver

func (*ChannelHandler) SetChannel

func (h *ChannelHandler) SetChannel(channel LogPartsChannel)

The channel to be used

type DatagramMessage

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

type Handler

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

The handler receive every syslog entry at Handle method

type LogPartsChannel

type LogPartsChannel chan format.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

Boot Starts the server, all the go routines goes to live

func (*Server) GetConnections

func (s *Server) GetConnections() map[string]net.PacketConn

GetConnections 获取 connections

func (*Server) GetLastError

func (s *Server) GetLastError() error

GetLastError Returns the last error

func (*Server) GetListeners

func (s *Server) GetListeners() map[string]net.Listener

GetListeners 获取 listeners

func (*Server) Kill

func (s *Server) Kill() error

Kill the server

func (*Server) KillSpecify

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

func (*Server) ListenTCP

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

ListenTCP Configure the server for listen on a TCP addr

func (*Server) ListenTCPTLS

func (s *Server) ListenTCPTLS(addr string, config *tls.Config) error

ListenTCPTLS Configure the server for listen on a TCP addr for TLS

func (*Server) ListenUDP

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

ListenUDP Configure the server for listen on an UDP addr

func (*Server) ListenUnixgram

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

ListenUnixgram Configure the server for listen on an unix socket

func (*Server) SetFormat

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

SetFormat Sets the syslog format (RFC3164 or RFC5424 or RFC6587)

func (*Server) SetHandler

func (s *Server) SetHandler(handler Handler)

SetHandler Sets the handler, this handler with receive every syslog entry

func (*Server) SetTimeout

func (s *Server) SetTimeout(millseconds int64)

SetTimeout Sets the connection timeout for TCP connections, in milliseconds

func (*Server) SetTlsPeerNameFunc

func (s *Server) SetTlsPeerNameFunc(tlsPeerNameFunc TlsPeerNameFunc)

SetTlsPeerNameFunc Set the function that extracts a TLS peer name from the TLS connection

func (*Server) Wait

func (s *Server) Wait()

Wait until the server stops

type TimeoutCloser

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

type TlsPeerNameFunc

type TlsPeerNameFunc func(tlsConn *tls.Conn) (tlsPeer string, ok bool)

A function type which gets the TLS peer name from the connection. Can return TlsPeerNameFunc ok=false to terminate the connection

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

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