gol

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

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

Go to latest
Published: Dec 22, 2016 License: Apache-2.0 Imports: 6 Imported by: 0

README

Logo

License Build Status

Project Stats Coverage Status

gol is an easily extensible concurrent logging library.

If you would like to contribute check CONTRIBUTING.md.

Example

package main

import (
	"fmt"
	"os"

	"github.com/mediaFORGE/gol"
	"github.com/mediaFORGE/gol/formatters"

	field_severity "github.com/mediaFORGE/gol/fields/severity"
	filter_severity "github.com/mediaFORGE/gol/filters/severity"
	logger_simple "github.com/mediaFORGE/gol/loggers/simple"
	manager_simple "github.com/mediaFORGE/gol/managers/simple"
)

// Log holds the application LogManager instance.
var Log gol.LoggerManager

func init() {
	fmt.Println("init():start")
	Log = manager_simple.New()

	f := filter_severity.New(field_severity.Info)
	formatter := formatters.Text{}
	logger := logger_simple.New(f, formatter, os.Stdout)
	Log.Register("main", logger)

	channel := make(chan *gol.LogMessage, 10)
	Log.Run(channel)
	Log.Send(gol.NewInfo("message", "main.Log has been configured"))
	channel <- gol.NewInfo("message", "this message was sent directly to the log manager channel")

	fmt.Println("init():end")
}

func main() {
	fmt.Println("Started application.")
	defer func() {
		Log.Close()
		fmt.Println("Ended application.")
	}()

	// send 10,000 messages
	for i := 0; i < 10000; i++ {
		Log.Send(gol.NewInfo("i", fmt.Sprintf("%d", i)))
	}
	fmt.Println("Ending application...")
}

More examples can be found here.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LogFilter

type LogFilter interface {
	Filter(*LogMessage) bool
}

LogFilter the interface a log filter needs to implement.

type LogFormatter

type LogFormatter interface {
	Format(*LogMessage) (string, error)
}

LogFormatter the interface a log message formatter needs to implement.

type LogMessage

type LogMessage map[string]interface{}

LogMessage is a log message.

func NewAlert

func NewAlert(args ...interface{}) *LogMessage

NewAlert builds an alert severity message.

func NewCritical

func NewCritical(args ...interface{}) *LogMessage

NewCritical builds a critical severity message.

func NewDebug

func NewDebug(args ...interface{}) *LogMessage

NewDebug builds a debug severity message.

func NewEmergency

func NewEmergency(args ...interface{}) *LogMessage

NewEmergency builds an emergency severity message.

func NewError

func NewError(args ...interface{}) *LogMessage

NewError builds an error severity message.

func NewInfo

func NewInfo(args ...interface{}) *LogMessage

NewInfo builds an info severity message.

func NewMessage

func NewMessage(l field_severity.Type, args ...interface{}) *LogMessage

NewMessage build a log message with the given severity level.

func NewNotice

func NewNotice(args ...interface{}) *LogMessage

NewNotice builds a notice severity message.

func NewWarning

func NewWarning(args ...interface{}) *LogMessage

NewWarning builds a warning severity message.

func (LogMessage) FieldLength

func (msg LogMessage) FieldLength() (n int)

FieldLength returns the number of fields in the message.

func (LogMessage) Get

func (msg LogMessage) Get(f string) (i interface{}, err error)

Get returns the value of the given logger message field.

func (LogMessage) SetSeverity

func (msg LogMessage) SetSeverity(lvl field_severity.Type) (err error)

SetSeverity sets the value of the logger message severity level field.

func (LogMessage) SetStart

func (msg LogMessage) SetStart(s *time.Time) (err error)

SetStart sets the value of the logger message start field.

func (LogMessage) SetStop

func (msg LogMessage) SetStop(s *time.Time) (err error)

SetStop sets the value of the logger message stop field.

func (LogMessage) Severity

func (msg LogMessage) Severity() (lvl field_severity.Type, err error)

Severity returns the value of the logger message severity level field.

func (LogMessage) Start

func (msg LogMessage) Start() (s *time.Time, err error)

Start returns the value of the logger message start field.

func (LogMessage) Stop

func (msg LogMessage) Stop() (s *time.Time, err error)

Stop returns the value of the logger message stop field.

func (LogMessage) Timestamp

func (msg LogMessage) Timestamp() (*field_timestamp.Type, error)

Timestamp returns the value of the logger message timestamp field.

type Logger

type Logger interface {
	Close()
	Filter() LogFilter
	Formatter() LogFormatter
	Run(chan *LogMessage)
	Send(*LogMessage) error
	SetFilter(LogFilter) error
	SetFormatter(LogFormatter) error
	SetWriter(io.Writer) error
	Status() bool
	Writer() io.Writer
}

Logger the interface a log message consumer must implement.

type LoggerManager

type LoggerManager interface {
	Close()
	Deregister(n string) error
	Disable(n string) error
	Enable(n string) error
	IsEnabled(n string) (bool, error)
	List() []string
	Register(n string, l Logger) error
	Run(chan *LogMessage)
	Send(*LogMessage) (err error)
}

LoggerManager the interface to manage an application set of loggers.

var Manager LoggerManager

Manager is the instance responsible for handling log messages and sending them to all registered loggers.

type NewLogMessageFunc

type NewLogMessageFunc func(args ...interface{}) *LogMessage

NewLogMessageFunc is the function signature of LogMessage constructor functions.

Jump to

Keyboard shortcuts

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