log

package module
v1.0.6 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2018 License: Apache-2.0 Imports: 9 Imported by: 0

README

Go Logger

GoDoc Go Report Card

Download

go get -u github.com/libgolang/log

Simple Usage

package main

import (
	"github.com/libgolang/log"
)

func main() {

// debug level
log.GetDefaultWriter().SetLevel(log.WARN)

// sets trace
log.SetTrace(true)

	log.Debug("This is a debugging statement ... won't show")
	log.Info("This is a debugging statement  ... won't show")
	log.Warn("This is a debugging statement  ... will show")
	log.Error("This is a debugging statement ... will show")
}

Configuration Environment Variables

// Path to configuration file
export LOG_CONFIG=/path/to/config.properties

// Override Global Debug Level
export LOG_LEVEL=DEBUG
Exampe config.properties
#
# Global Debug Level
# Default: WARN
log.level=DEBUG

#
# Enable Trace. This might be a slow operation
# Default: false
log.trace=true

#
# Define a log writer. By default there is one writer to stdout
#
log.writer.logger0.type=stdout

#
# Define a log writer to a file
#
log.writer.logger1.type=file
log.writer.logger1.name=one
log.writer.logger1.level=INFO
log.writer.logger1.maxfiles=10
log.writer.logger1.maxSize=1073741824
log.writer.logger1.dir=./log

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(format string, a ...interface{})

Debug log to root logger

func Err

func Err(format string, a ...interface{}) error

Err log to root logger

func Error

func Error(format string, a ...interface{})

Error log to root logger

func Info

func Info(format string, a ...interface{})

Info log to root logger

func IsTraceEnabled

func IsTraceEnabled() bool

IsTraceEnabled whether printing of file names and line numbers is enabled

func LevelToStr

func LevelToStr(level Level) string

LevelToStr Level type to a string

func LoadLogProperties

func LoadLogProperties()

LoadLogProperties loads properties from configuration file in LOG_CONFIG

func Panic

func Panic(format string, a ...interface{})

Panic log to root logger

func PrintLog

func PrintLog(logLevel Level, format string, a []interface{})

PrintLog sends a log message to the writers. name: logger name loggerLevel: the level of the logger implementation logLevel: the level of the message. If the level of the message is greater than loggerLevel the log will bi discarted format: log format. See fmt.Printf a...: arguments. See fmt.Printf

func SetTrace

func SetTrace(trace bool)

SetTrace when set to true, the log will print file names and line numbers

func SetWriters

func SetWriters(w []Writer)

SetWriters sets the writers for all the loggers

func Warn

func Warn(format string, a ...interface{})

Warn log to root logger

Types

type FileSize

type FileSize int64

FileSize represents the size of a file

const (

	// Kilobyte usage (Kilobyte * 2) = 2Kb
	Kilobyte FileSize = 1 << (10 * iota) // 1 << (10*1)

	// Megabyte usage (Megabyte * 2) = 2Mb
	Megabyte // 1 << (10*2)

	// Gigabyte usage (Gigabyte * 2) = 2Gb
	Gigabyte // 1 << (10*3)

	// Terabyte usage (Terabyte * 2) = 2Tb
	Terabyte // 1 << (10*4)

	// Petabyte usage (Petabyte * 2) = 2Pb
	Petabyte // 1 << (10*5)

	// Exabyte usage (Exabyte * 2) = 2Pb
	Exabyte // 1 << (10*6)
)

type Level

type Level int

Level Logging Level

const (
	// DEBUG debug level
	DEBUG Level = 40

	// INFO debug level
	INFO Level = 30

	// WARN warn level
	WARN Level = 20

	// ERROR error level
	ERROR Level = 10

	// OTHER empty value
	OTHER Level = 0
)

func StrToLevel

func StrToLevel(str string) Level

StrToLevel converts a string to a Level type

func (*Level) MarshalJSON

func (l *Level) MarshalJSON() ([]byte, error)

MarshalJSON json serializer

func (Level) String

func (l Level) String() string

func (Level) StringColor

func (l Level) StringColor() string

StringColor terminal colored string

func (*Level) UnmarshalJSON

func (l *Level) UnmarshalJSON(b []byte) error

UnmarshalJSON json unserializer

type Writer

type Writer interface {
	WriteLog(logLevel Level, format string, args []interface{})
	SetLevel(level Level)
}

Writer writer interface

func GetDefaultWriter added in v1.0.6

func GetDefaultWriter() Writer

GetDefaultWriter gets the default writer

func NewFileWriter

func NewFileWriter(logDir, fileName string, maxSize FileSize, maxNumFiles int, level Level) Writer

NewFileWriter retuns a new instance of fileWriter. Parameter logdir is the directory where logs will be written. Parameter fileName is the name to use when creating the files. Param maxSize is the maximum size of a log, when the size is exceded, the log is rotated. maxNumFiles is the maximum number of logs to keep.

func NewStdoutWriter added in v1.0.4

func NewStdoutWriter(level Level) Writer

NewStdoutWriter constructor

type WriterStdout

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

WriterStdout writes to the standard output

func (*WriterStdout) SetLevel

func (w *WriterStdout) SetLevel(level Level)

SetLevel sets the writer level

func (*WriterStdout) WriteLog

func (w *WriterStdout) WriteLog(
	messageLevel Level,
	format string,
	args []interface{},
)

WriteLog implementation of logger.Writer

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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