logger

package
v0.0.0-...-120cf50 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2020 License: GPL-3.0 Imports: 12 Imported by: 0

README

log

自己写的一个简单的日志框架

默认输出到 终端和文件
终端:debug到fatal全开
文件: debug到fatal全开
可以添加多个文件打印机:一个文件打印机只能打一个文件,不同的文件打印机可以将同一条语句打印到不同文件
可以自己调整打印机需要打印的日志等级
也可以调整打印机需要打印到的文件对象

Documentation

Index

Constants

View Source
const (
	UNLIMIT             int64 = 0
	UNLIMIT_EXPIRE_TIME int   = 0
)
View Source
const (
	NET     uint32 = 100 //网络打印机
	CONSOLE uint32 = 200 //终端打印机
	FILE    uint32 = 300 //文件打印机
)

打印机类型

View Source
const (
	UNKNOWN int = 0
	FATAL   int = 1
	ERROR   int = 2
	WARNING int = 3
	NOTICE  int = 4
	INFO    int = 5
	DEBUG   int = 6
)

等级

View Source
const DefaultConsoleWriterName string = "defaultConsoelWriter"

默认终端打印机名字

View Source
const DefaultFileWriterName string = "defaultFileWriter"

默认文件打印机名字

View Source
const DefaultNetWriterName string = "defaultNetWriter"

默认网络打印机名字

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigI

type ConfigI interface {
	Check() bool
	Type() uint32
}

type ConsoleWriter

type ConsoleWriter struct {
	// contains filtered or unexported fields
}
var DefaultConsoleWriter *ConsoleWriter

func NewConsoleWriter

func NewConsoleWriter(conf *ConsoleWriterConfig) *ConsoleWriter

func (*ConsoleWriter) Close

func (w *ConsoleWriter) Close()

关闭

func (*ConsoleWriter) CloseLevel

func (w *ConsoleWriter) CloseLevel(lvl int)

关闭日志等级

func (*ConsoleWriter) Flush

func (w *ConsoleWriter) Flush()

输入

func (*ConsoleWriter) Init

func (w *ConsoleWriter) Init(openLevels []int)

初始化打印机

func (*ConsoleWriter) IsLevelOpen

func (w *ConsoleWriter) IsLevelOpen(lvl int) bool

判断等级是否打开

func (*ConsoleWriter) Name

func (w *ConsoleWriter) Name() string

返回打印机名字

func (*ConsoleWriter) SetLevel

func (w *ConsoleWriter) SetLevel(lvl LevelInfoI)

设置日志等级

func (*ConsoleWriter) SetTarget

func (w *ConsoleWriter) SetTarget(target string)

设置打印目标

func (*ConsoleWriter) SetValid

func (w *ConsoleWriter) SetValid(isValid bool)

设置是否可用

func (*ConsoleWriter) Type

func (w *ConsoleWriter) Type() uint32

返回打印机类型

func (*ConsoleWriter) Write

func (w *ConsoleWriter) Write(lvl int, str string)

写日志

type ConsoleWriterConfig

type ConsoleWriterConfig struct {
	WriterName string `json:"WriterName"` //名字
	CacheCapa  int    `json:"CacheCapa"`  //日志缓冲队列容量 ↑
	OpenLevels []int  `json:"OpenLevels"` //要打开的等级
}

这些参数从配置文件中读取 符号解释: ↑:值越大,性能越好 ↓:值越大,性能越差 =:对性能没影响 ?:对性能有影响,但不是线性关系,即无法确定影响的好坏

var DefaultConsoleWriterConfig *ConsoleWriterConfig

默认终端打印机

func (*ConsoleWriterConfig) Check

func (c *ConsoleWriterConfig) Check() bool

func (*ConsoleWriterConfig) Name

func (c *ConsoleWriterConfig) Name() string

func (*ConsoleWriterConfig) Type

func (c *ConsoleWriterConfig) Type() uint32

type FileInfo

type FileInfo struct {
	Path       string    //路径名称
	Name       string    //文件名称(文件名+类型:"007.txt")
	Type       string    //类型(".txt")
	Size       file.SIZE //实际大小(单位:MB)(不准确)
	CreateTime time.Time //文件创建日期(不准确)
	WFd        *os.File  //写文件描述符
	RFd        *os.File  //读文件描述符
	// contains filtered or unexported fields
}

文件信息

func (*FileInfo) CreateFile

func (fi *FileInfo) CreateFile() error

func (*FileInfo) GetAbsPath

func (fi *FileInfo) GetAbsPath() string

获得文件的绝对路径

func (*FileInfo) Info

func (fi *FileInfo) Info() error

func (*FileInfo) IsExpired

func (fi *FileInfo) IsExpired(dur time.Duration) bool

func (*FileInfo) IsFull

func (fi *FileInfo) IsFull(sz file.SIZE) bool

type FileManager1

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

func NewFileManager1

func NewFileManager1(maxFileNum int) *FileManager1

func (*FileManager1) CleanFile

func (fm *FileManager1) CleanFile(filePathName string) error

func (*FileManager1) CloseFile

func (fm *FileManager1) CloseFile(filePathName string)

func (*FileManager1) GetFileInfo

func (fm *FileManager1) GetFileInfo(filePathName string) *FileInfo

func (*FileManager1) OpenFile

func (fm *FileManager1) OpenFile(filePathName string, args ...interface{}) (*FileInfo, error)

打开文件 args:文件容量 dur:文件寿命 s

func (*FileManager1) Read

func (fm *FileManager1) Read(filePathName string, length int) ([]byte, error)

func (*FileManager1) Write

func (fm *FileManager1) Write(filePathName string, data []byte) (int, error)

type FileWriter

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

文件打印器

var DefaultFileWriter *FileWriter

func NewFileWriter

func NewFileWriter(conf *FileWriterConfig) *FileWriter

新建一个文件打印器

func (*FileWriter) Close

func (w *FileWriter) Close()

关闭打印器

func (*FileWriter) CloseLevel

func (w *FileWriter) CloseLevel(lvl int)

关闭某个日志等级

func (*FileWriter) Flush

func (w *FileWriter) Flush()

刷入

func (*FileWriter) Init

func (w *FileWriter) Init(openLevels []int)

初始化打印机

func (*FileWriter) IsLevelOpen

func (w *FileWriter) IsLevelOpen(lvl int) bool

判断等级是否打开

func (*FileWriter) Name

func (w *FileWriter) Name() string

返回打印机名字

func (*FileWriter) SetLevel

func (w *FileWriter) SetLevel(lvl LevelInfoI)

设置日志等级

func (*FileWriter) SetNewFileFunc

func (w *FileWriter) SetNewFileFunc(f func() string)

设置新建文件函数

func (*FileWriter) SetTarget

func (w *FileWriter) SetTarget(arg string)

设置打印地址

func (*FileWriter) SetValid

func (w *FileWriter) SetValid(isValid bool)

设置是否可用

func (*FileWriter) Type

func (w *FileWriter) Type() uint32

返回打印机类型

func (*FileWriter) Write

func (w *FileWriter) Write(lvl int, str string)

写日志

type FileWriterConfig

type FileWriterConfig struct {
	WriterName string `json:"WriterName"` //打印机名字
	Capacity   int64  `json:"Capacity"`   //文件容量(单位: MB) ↑
	ExpireDur  int    `json:"ExpireDur"`  //文件生命周期(单位: Hour) ↑
	DelDur     int    `json:"DelDur"`     //文件删除周期(单位: Day)
	CheckDur   int    `json:"CheckDur"`   //写入多少次检查一次打印机
	BufCapa    int64  `json:"BufCapa"`    //文件缓冲区容量 ↑
	CacheCapa  int    `json:"CacheCapa"`  //日志缓冲队列容量 ↑
	OpenLevels []int  `json:"OpenLevels"` //要打开的等级
	MaxFileNum int    `json:"MaxFileNum"` //同时打开最大文件数量
}

这些参数从配置文件中读取 符号解释: ↑:值越大,性能越好 ↓:值越大,性能越差 =:对性能没影响 ?:对性能有影响,但不是线性关系,即无法确定影响的好坏

var DefaultFileWriterConfig *FileWriterConfig

默认文件打印机

func (*FileWriterConfig) Check

func (c *FileWriterConfig) Check() bool

func (*FileWriterConfig) Name

func (c *FileWriterConfig) Name() string

func (*FileWriterConfig) Type

func (c *FileWriterConfig) Type() uint32

type LevelInfo

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

func NewLevel

func NewLevel(lvl int, headFunc func(lvl int) string) *LevelInfo

func (*LevelInfo) Head

func (li *LevelInfo) Head() string

func (*LevelInfo) IsValid

func (li *LevelInfo) IsValid() bool

func (*LevelInfo) Level

func (li *LevelInfo) Level() int

func (*LevelInfo) SetHeadFunc

func (li *LevelInfo) SetHeadFunc(f func(lvl int) string)

func (*LevelInfo) SetValid

func (li *LevelInfo) SetValid(isValid bool)

type LevelInfoI

type LevelInfoI interface {
	IsValid() bool         //当前等级是否可用
	SetValid(isValid bool) //设置是否可用
	Level() int            //返回等级num
	Head() string          //返回日志头字符串
}

type LogConfig

type LogConfig struct {
	DoPrintConsole bool                 `json:"DoPrintConsole"` //是否打印终端
	DoPrintFile    bool                 `json:"DoPrintFile"`    //是否打印文件
	DoPrintNet     bool                 `json:"DoPrintNet"`     //是否打印网路
	Console        *ConsoleWriterConfig `json:"Console"`        //终端打印机配置
	File           *FileWriterConfig    `json:"File"`           //文件打印机配置
	Net            *NetWriterConfig     `json:"Net"`            //网络打印机配置
}

日志配置

func NewConfig

func NewConfig() *LogConfig

新建配置

type LogWriterI

type LogWriterI interface {
	Type() uint32              //返回打印机类型
	Name() string              //返回打印机名字
	SetTarget(target string)   //设置打印地址
	SetLevel(lvl LevelInfoI)   //设置打印机可打印的日志等级
	CloseLevel(lvl int)        //关闭某个等级的日志
	Write(lvl int, str string) //写
	Flush()                    //刷入
	Close()                    //关闭
	SetValid(isvalid bool)     //设置是否可用
}

type Logger

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

func GetDefaultLogger

func GetDefaultLogger() *Logger

func NewLogger

func NewLogger(confs ...ConfigI) *Logger

func (*Logger) Debug

func (log *Logger) Debug(format string, args ...interface{})

func (*Logger) Error

func (log *Logger) Error(format string, args ...interface{})

func (*Logger) Fatal

func (log *Logger) Fatal(format string, args ...interface{})

func (*Logger) Flush

func (log *Logger) Flush()

刷入

func (*Logger) GetWriter

func (log *Logger) GetWriter(writerName string) LogWriterI

获得打印器

func (*Logger) Info

func (log *Logger) Info(format string, args ...interface{})

func (*Logger) Notice

func (log *Logger) Notice(format string, args ...interface{})

func (*Logger) SetWriter

func (log *Logger) SetWriter(writer LogWriterI)

设置打印器

func (*Logger) Warning

func (log *Logger) Warning(format string, args ...interface{})

type NetWriter

type NetWriter struct {
	// contains filtered or unexported fields
}
var DefaultNetWriter *NetWriter

func NewNetWriter

func NewNetWriter(conf *NetWriterConfig) *NetWriter

func (*NetWriter) Close

func (w *NetWriter) Close()

关闭打印器

func (*NetWriter) CloseLevel

func (w *NetWriter) CloseLevel(lvl int)

关闭日志等级

func (*NetWriter) Flush

func (w *NetWriter) Flush()

func (*NetWriter) Init

func (w *NetWriter) Init(openLevels []int)

初始化打印机

func (*NetWriter) IsLevelOpen

func (w *NetWriter) IsLevelOpen(lvl int) bool

判断等级是否打开

func (*NetWriter) Name

func (w *NetWriter) Name() string

返回打印机名字

func (*NetWriter) SetLevel

func (w *NetWriter) SetLevel(lvl LevelInfoI)

设置等级

func (*NetWriter) SetTarget

func (w *NetWriter) SetTarget(target string)

设置打印地址

func (*NetWriter) SetValid

func (w *NetWriter) SetValid(isValid bool)

设置是否可用

func (*NetWriter) Type

func (w *NetWriter) Type() uint32

类型

func (*NetWriter) Write

func (w *NetWriter) Write(lvl int, str string)

type NetWriterConfig

type NetWriterConfig struct {
	WriterName string `json:"WriterName"` //名字
	CacheCapa  int    `json:"CacheCapa"`  //日志缓冲队列容量 ↑
	CheckDur   int    `json:"CheckDur"`   //检查周期(写入多少次检查一次打印机)
	OpenLevels []int  `json:"OpenLevels"` //要打开的等级
}

这些参数从配置文件中读取 符号解释: ↑:值越大,性能越好 ↓:值越大,性能越差 =:对性能没影响 ?:对性能有影响,但不是线性关系,即无法确定影响的好坏

var DefaultNetConfig *NetWriterConfig

默认网络打印机

func (*NetWriterConfig) Check

func (c *NetWriterConfig) Check() bool

func (*NetWriterConfig) Type

func (c *NetWriterConfig) Type() uint32

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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