logange

package module
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Jan 18, 2022 License: MIT Imports: 6 Imported by: 0

README

Logange

GoDoc

Logging library which mimics Python's native logging library.

⚠ Logange is an experimental and non-production ready library. Use at your own risk.

Installation

Logange can be installed using the go get -u github.com/BrenekH/logange command.

Concepts

Logange uses loggers, formatters, and handlers.

Loggers are part of a family tree with logange.RootLogger as the base node. Logs will traverse the tree calling any attached handlers on the way to the root logger.

Handlers take log messages and send them to defined sources. There are two handlers already available as part of Logange, StdoutHandler and FileHandler which are instantiated using NewStdoutHandler and NewFileHandler respectively.

Formatters are used by handlers to add additional information to the logs.

Usage

Basic Setup

The following code creates a logger called main, defines how the message should be formatted, and uses the logange.StdoutHandler to output messages to the console.

package main

import "github.com/BrenekH/logange"

func main() {
    logger := logange.NewLogger("main")

    formatter := logange.StandardFormatter{FormatString: "${datetime}|${name}|${lineno}|${levelname}|${message}\n"}
    stdoutHandler := logange.NewStdoutHandler()

    stdoutHandler.SetFormatter(formatter)
    stdoutHandler.SetLevel(logange.LevelInfo)

    logger.AddHandler(&stdoutHandler)

    logger.Info("Hello, World!")
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LevelToString

func LevelToString(id Level) (s string)

LevelToString converts the inputted Level id into a string name of the level name

Types

type FileHandler added in v0.2.0

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

FileHandler is an implementation of the Handler interface that directs to stdout

func NewFileHandler added in v0.2.0

func NewFileHandler(path string) (FileHandler, error)

NewFileHandler returns an instantiated FileHandler type

func (*FileHandler) Close added in v0.2.0

func (h *FileHandler) Close()

Close closes the underlying os.File object

func (*FileHandler) Level added in v0.3.0

func (h *FileHandler) Level() Level

Level returns the current logging level

func (*FileHandler) LevelString added in v0.3.0

func (h *FileHandler) LevelString() string

LevelString returns the current logging level as a string

func (*FileHandler) RecordLog added in v0.2.0

func (h *FileHandler) RecordLog(message string, i []interface{}, logLvl Level, lineno string, name string, datetime time.Time)

RecordLog records the log to the stdout stream

func (*FileHandler) SetFormatter added in v0.2.0

func (h *FileHandler) SetFormatter(f Formatter)

SetFormatter sets the formatter for the handler to use

func (*FileHandler) SetLevel added in v0.2.0

func (h *FileHandler) SetLevel(lvl Level)

SetLevel sets the level the handler uses

type Formatter

type Formatter interface {
	Format(message string, levelname string, lineno string, name string, datetime time.Time) string
}

Formatter is an interface for the Formatter used by logging

type Handler

type Handler interface {
	RecordLog(message string, i []interface{}, logLvl Level, lineno string, name string, datetime time.Time)
	SetLevel(level Level)
	SetFormatter(f Formatter)
	Level() Level
	LevelString() string
}

Handler is an interface for the Handlers used by logging

type Level

type Level int

Level is a type alias for int

var (
	// LevelTrace TODO
	LevelTrace Level = 0
	// LevelDebug TODO
	LevelDebug Level = 10
	// LevelInfo TODO
	LevelInfo Level = 20
	// LevelWarn TODO
	LevelWarn Level = 30
	// LevelError TODO
	LevelError Level = 40
	// LevelCritical TODO
	LevelCritical Level = 50
)

type Logger

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

Logger is the basic unit of logging

var RootLogger *Logger

RootLogger is the parent of all Loggers

func NewLogger

func NewLogger(name string) Logger

NewLogger returns an properly instantiated Logger type

func (*Logger) AddHandler

func (l *Logger) AddHandler(h Handler)

AddHandler adds the provided handler to the Logger

func (*Logger) AddParent

func (l *Logger) AddParent(lo *Logger)

AddParent adds a parent logger

func (*Logger) Critical

func (l *Logger) Critical(s string, i ...interface{})

Critical records a log record using a format string with level of Critical and then calls os.Exit(1).

func (*Logger) Debug

func (l *Logger) Debug(s string, i ...interface{})

Debug records a log record using a format string with level of Debug

func (*Logger) Error

func (l *Logger) Error(s string, i ...interface{})

Error records a log record using a format string with level of Error

func (*Logger) Info

func (l *Logger) Info(s string, i ...interface{})

Info records a log record using a format string with level of Info

func (*Logger) NewLogger added in v0.7.0

func (l *Logger) NewLogger(name string) Logger

NewLogger creates a new logger instance and sets this logger as a parent.

func (*Logger) Trace

func (l *Logger) Trace(s string, i ...interface{})

Trace records a log record using a format string with level of Trace.

func (*Logger) Warn

func (l *Logger) Warn(s string, i ...interface{})

Warn records a log record using a format string with level of Warn

type StandardFormatter

type StandardFormatter struct {
	FormatString string
}

StandardFormatter is the in-library implementation of the Formatter interface

func (StandardFormatter) Format

func (f StandardFormatter) Format(message string, levelname string, lineno string, name string, datetime time.Time) (s string)

Format formats using the passed arguments and the formatter's format string

type StdoutHandler

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

StdoutHandler is an implementation of the Handler interface that directs to stdout

func NewStdoutHandler added in v0.2.0

func NewStdoutHandler() StdoutHandler

NewStdoutHandler returns an instantiated StdoutHandler type

func (*StdoutHandler) Level added in v0.3.0

func (h *StdoutHandler) Level() Level

Level returns the current logging level

func (*StdoutHandler) LevelString added in v0.3.0

func (h *StdoutHandler) LevelString() string

LevelString returns the current logging level as a string

func (*StdoutHandler) RecordLog

func (h *StdoutHandler) RecordLog(message string, i []interface{}, logLvl Level, lineno string, name string, datetime time.Time)

RecordLog records the log to the stdout stream

func (*StdoutHandler) SetFormatter

func (h *StdoutHandler) SetFormatter(f Formatter)

SetFormatter sets the formatter for the handler to use

func (*StdoutHandler) SetLevel

func (h *StdoutHandler) SetLevel(lvl Level)

SetLevel sets the level the handler uses

Jump to

Keyboard shortcuts

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