gogger

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

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

Go to latest
Published: Dec 8, 2024 License: MIT Imports: 7 Imported by: 18

README

log.New wrapper

Installation

go get -u github.com/allape/gogger

Example

package main

import (
	"github.com/allape/gogger"
	"io"
	"log"
	"os"
)

func main() {
	err := gogger.InitFromEnv()
	if err != nil {
		panic(err)
	}

	l := gogger.New("main")
	l.Error().Println("error")

	file, err := os.Create("main.log")
	if err != nil {
		panic(err)
	}

	stdout := io.MultiWriter(os.Stdout, file)
	stderr := io.MultiWriter(os.Stderr, file)

	fileLogger := gogger.NewWithWriter("main", log.LstdFlags, stdout, stderr)
	fileLogger.Error().Println("error")
}

Environment variables
  • GOGGER_LEVEL: log level, case insensitive, default info.
    • off
    • error
    • warn
    • info
    • debug
    • verbose
  • GOGGER_FLAG: log flag, default log.LstdFlags|log.Lmsgprefix == 67.
  • GOGGER_NORMAL_CHANNEL: normal channel, for levels except error and warn, default stdout.
    • See GOGGER_CRITICAL_CHANNEL.
  • GOGGER_CRITICAL_CHANNEL: critical channel, for error and warn, default stderr.
    • stdout: os.Stdout
    • stderr: os.Stderr
    • discard: io.Discard

Documentation

Index

Constants

View Source
const (
	EnvLevel           = "GOGGER_LEVEL"
	EnvFlag            = "GOGGER_FLAG"
	EnvNormalChannel   = "GOGGER_NORMAL_CHANNEL"
	EnvCriticalChannel = "GOGGER_CRITICAL_CHANNEL"
)

Variables

View Source
var (
	NormalChannel   = Stdout
	CriticalChannel = Stderr
)
View Source
var DiscardLogger = log.New(io.Discard, "", 0)
View Source
var Level = Info
View Source
var PresetFlag = log.LstdFlags | log.Lmsgprefix

Functions

func InitFromEnv

func InitFromEnv() error

func Trace

func Trace(err error) error

Types

type Logger

type Logger struct {
	Normal   io.Writer
	Critical io.Writer

	Tag  string
	Flag int
	// contains filtered or unexported fields
}

func New

func New(tag string) *Logger

func NewWithFlag

func NewWithFlag(tag string, flag int) *Logger

func NewWithWriter

func NewWithWriter(tag string, flag int, normal, critical io.Writer) *Logger

func (*Logger) Debug

func (l *Logger) Debug() *log.Logger

func (*Logger) Error

func (l *Logger) Error() *log.Logger

func (*Logger) Info

func (l *Logger) Info() *log.Logger

func (*Logger) Verbose

func (l *Logger) Verbose() *log.Logger

func (*Logger) Warn

func (l *Logger) Warn() *log.Logger

type LoggerChannel

type LoggerChannel string
const (
	Stdout  LoggerChannel = "stdout"
	Stderr  LoggerChannel = "stderr"
	Discard LoggerChannel = "discard"
)

func (LoggerChannel) ToWriter

func (c LoggerChannel) ToWriter() io.Writer

type LoggerLevel

type LoggerLevel uint
const (
	Off     LoggerLevel = 0
	Error   LoggerLevel = 10
	Warn    LoggerLevel = 100
	Info    LoggerLevel = 1000
	Debug   LoggerLevel = 10000
	Verbose LoggerLevel = 100000
)

func (LoggerLevel) ToReadable

func (l LoggerLevel) ToReadable() ReadableLevel

type ReadableLevel

type ReadableLevel string
const (
	ROff     ReadableLevel = "OFF"
	RError   ReadableLevel = "ERROR"
	RWarn    ReadableLevel = "WARN"
	RInfo    ReadableLevel = "INFO"
	RDebug   ReadableLevel = "DEBUG"
	RVerbose ReadableLevel = "VERBOSE"
)

func (ReadableLevel) ToLevel

func (l ReadableLevel) ToLevel() (LoggerLevel, error)

Jump to

Keyboard shortcuts

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