logger

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

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

Go to latest
Published: Nov 2, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

README

Logger

An asynchronous log module that supports automatic sharding by date for file size.

Features

  1. Logs are recorded at different levels.
  2. Support logs to console and file output.
  3. File log sharding supports by date and file size.

Installation

go get -u github.com/ytJansbon/logger

Examples

1 This is the example which uses singleton to init logger
user, err := user.Current()
config := "{" +
	"\"prefix\":\"mylogger\"," +
	"\"bufferSize\":1024," +
	"\"fileDir\":\"%s\"," +
	"\"fileName\":\"example.log\"," +
	"\"fileSize\":%d," +
	"\"fileCount\":5," +
	"\"outputType\":%d," +
	"\"level\":%d}}"
config = fmt.Sprintf(config, user.HomeDir+"/log", 1024*1024*1, logger.OutputType_console, logger.Level_All)

err = logger.InsLogger().Init(config)
if err != nil {
	fmt.Println("logger new error:", err.Error())
	return
}

logger.InsLogger().Info("test logger info")
time.Sleep(time.Duration(5) * time.Second)
fmt.Println("test example_singleton end") 
2 This is the example which uses object generator to init logger
user, err := user.Current()
config := "{" +
	"\"prefix\":\"mylogger\"," +
	"\"bufferSize\":1024," +
	"\"fileDir\":\"%s\"," +
	"\"fileName\":\"example.log\"," +
	"\"fileSize\":%d," +
	"\"fileCount\":5," +
	"\"outputType\":%d," +
	"\"level\":%d}}"
config = fmt.Sprintf(config, user.HomeDir+"/log", 1024*1024*1, logger.OutputType_console, logger.Level_All)

logger, err := logger.NewLogger(config)
if err != nil {
	fmt.Println("logger new error:", err.Error())
	return
}

logger.Info("test logger info")
time.Sleep(time.Duration(5) * time.Second)
fmt.Println("test example_generator end")

Documentation

Index

Constants

View Source
const (
	CHECK_SLICE_FILE_INTERVAL = 180 //check slice file interval time
	CHANGE_LINE_FLAG          = "\n"
)
View Source
const (
	DEFAULT_BUFFERSIZE_VALUE = 2048 //channel buffer size
	DEFAULT_OUTPUTTYPE_VALUE = OutputType_console
	DEFAULT_SLICETYPE_VALUE  = 0
	DEFAULT_PREFIX_VALUE     = ""
	DEFAULT_LEVEL_VALUE      = Level_Info
	DEFAULT_FILEDIR_VALUE    = "./log"
	DEFAULT_FILENAME_VALUE   = "logfile.log"
	DEFAULT_FILECOUNT_VALUE  = 3
	DEFAULT_FILESIZE_VALUE   = 1024 * 1024 * 3
)
View Source
const (
	Level_All = iota
	Level_Debug
	Level_Info
	Level_Warn
	Level_Error
	Level_Fatal
)

log level

Variables

This section is empty.

Functions

This section is empty.

Types

type Logger

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

func InsLogger

func InsLogger() *Logger

This is the singleton interface

func NewLogger

func NewLogger(config string) (*Logger, error)

This is the object generator interface

func (*Logger) Debug

func (lg *Logger) Debug(v ...interface{})

func (*Logger) DebugF

func (lg *Logger) DebugF(format string, a ...interface{})

func (*Logger) Error

func (lg *Logger) Error(v ...interface{})

func (*Logger) ErrorF

func (lg *Logger) ErrorF(format string, a ...interface{})

func (*Logger) Fatal

func (lg *Logger) Fatal(v ...interface{})

func (*Logger) FatalF

func (lg *Logger) FatalF(format string, a ...interface{})

func (*Logger) Info

func (lg *Logger) Info(v ...interface{})

func (*Logger) InfoF

func (lg *Logger) InfoF(format string, a ...interface{})

func (*Logger) Init

func (lg *Logger) Init(config string) error

func (*Logger) Log

func (lg *Logger) Log(level int, v ...interface{})

func (*Logger) LogF

func (lg *Logger) LogF(level int, format string, a ...interface{})

func (*Logger) Warn

func (lg *Logger) Warn(v ...interface{})

func (*Logger) WarnF

func (lg *Logger) WarnF(format string, a ...interface{})

type OutputType

type OutputType byte

the output type of logs

const (
	OutputType_all     OutputType = iota //both output to file and console
	OutputType_console                   //only output to console
	OutputType_file                      //only output to file
)

type SliceType

type SliceType byte
const (
	SliceType_Size SliceType = iota //slice file by file size
	SliceType_Date                  //slice file by date
)

Directories

Path Synopsis
example

Jump to

Keyboard shortcuts

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