logger

package module
v2.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2022 License: Apache-2.0 Imports: 7 Imported by: 25

Documentation

Overview

Package logger used to get a logger for modules to write log

Index

Constants

View Source
const (
	MODULE_BLOCKCHAIN = "[Blockchain]"
	MODULE_NET        = "[Net]"
	MODULE_STORAGE    = "[Storage]"
	MODULE_SNAPSHOT   = "[Snapshot]"
	MODULE_CONSENSUS  = "[Consensus]"
	MODULE_TXPOOL     = "[TxPool]"
	MODULE_CORE       = "[Core]"
	MODULE_VM         = "[Vm]"
	MODULE_RPC        = "[Rpc]"
	MODULE_LEDGER     = "[Ledger]" //nolint:golint,unused
	MODULE_CLI        = "[Cli]"
	MODULE_CHAINCONF  = "[ChainConf]"
	MODULE_ACCESS     = "[Access]"
	MODULE_MONITOR    = "[Monitor]"
	MODULE_SYNC       = "[Sync]"
	MODULE_DPOS       = "[DPoS]"
	MODULE_TXFILTER   = "[TxFilter]"

	MODULE_BRIEF = "[Brief]"
	MODULE_EVENT = "[Event]"

	DefaultStackTraceLevel = "ERROR"
)

Log module

Variables

This section is empty.

Functions

func RefreshLogConfig

func RefreshLogConfig(config *LogConfig)

RefreshLogConfig refresh log levels of modules at initiation time of log module or refresh log levels of modules dynamically at running time.

func SetLogConfig

func SetLogConfig(config *LogConfig)

SetLogConfig set the config of logger module, called in initialization of config module

Types

type CMLogger

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

CMLogger is an implementation of chainmaker logger.

func GetLogger

func GetLogger(name string) *CMLogger

GetLogger find or create a CMLogger with module name, usually called in initialization of all module. After one module get the logger, the module can use it forever until the program terminate.

func GetLoggerByChain

func GetLoggerByChain(name, chainId string) *CMLogger

GetLoggerByChain find the CMLogger object with module name and chainId, usually called in initialization of all module. One module can get a logger for each chain, then logger can be use forever until the program terminate.

func (*CMLogger) Close added in v2.3.0

func (l *CMLogger) Close()

Close sync log and close handler

func (*CMLogger) Debug

func (l *CMLogger) Debug(args ...interface{})

Debug Debug级日志 @param args

func (*CMLogger) DebugDynamic

func (l *CMLogger) DebugDynamic(getStr func() string)

DebugDynamic 动态Debug级日志,只有需要日志输出时才会运行匿名函数的内容,产生日志结果 @param getStr

func (*CMLogger) Debugf

func (l *CMLogger) Debugf(format string, args ...interface{})

Debugf Debug级日志,支持format @param format @param args

func (*CMLogger) Debugw

func (l *CMLogger) Debugw(msg string, keysAndValues ...interface{})

Debugw Debug级日志,支持kv对 @param msg @param keysAndValues

func (*CMLogger) Error

func (l *CMLogger) Error(args ...interface{})

Error Error级日志 @param args

func (*CMLogger) Errorf

func (l *CMLogger) Errorf(format string, args ...interface{})

Errorf Error级日志,支持format @param format @param args

func (*CMLogger) Errorw

func (l *CMLogger) Errorw(msg string, keysAndValues ...interface{})

Errorw Error级日志,支持kv对 @param msg @param keysAndValues

func (*CMLogger) Fatal

func (l *CMLogger) Fatal(args ...interface{})

Fatal 失败日志 @param args

func (*CMLogger) Fatalf

func (l *CMLogger) Fatalf(format string, args ...interface{})

Fatalf 失败日志,带Format @param format @param args

func (*CMLogger) Fatalw

func (l *CMLogger) Fatalw(msg string, keysAndValues ...interface{})

Fatalw 失败日志,支持KV @param msg @param keysAndValues

func (*CMLogger) Info

func (l *CMLogger) Info(args ...interface{})

Info Info级日志 @param args

func (*CMLogger) InfoDynamic

func (l *CMLogger) InfoDynamic(getStr func() string)

InfoDynamic 动态Info级日志,只有需要日志输出时才会运行匿名函数的内容,产生日志结果 @param getStr

func (*CMLogger) Infof

func (l *CMLogger) Infof(format string, args ...interface{})

Infof Info级日志,支持Format @param format @param args

func (*CMLogger) Infow

func (l *CMLogger) Infow(msg string, keysAndValues ...interface{})

Infow Info级日志,支持kv对 @param msg @param keysAndValues

func (*CMLogger) Logger

func (l *CMLogger) Logger() *zap.SugaredLogger

Logger 获得CMLogger内部的zap Logger @return *zap.SugaredLogger

func (*CMLogger) Panic

func (l *CMLogger) Panic(args ...interface{})

Panic 记录日志并抛出Panic @param args

func (*CMLogger) Panicf

func (l *CMLogger) Panicf(format string, args ...interface{})

Panicf 记录日志并抛出Panic,日志支持format @param format @param args

func (*CMLogger) Panicw

func (l *CMLogger) Panicw(msg string, keysAndValues ...interface{})

Panicw 记录日志并抛出Panic,日志支持kv对 @param msg @param keysAndValues

func (*CMLogger) SetLogger

func (l *CMLogger) SetLogger(logger *zap.SugaredLogger)

SetLogger set logger.

func (*CMLogger) Warn

func (l *CMLogger) Warn(args ...interface{})

Warn Warn级日志 @param args

func (*CMLogger) Warnf

func (l *CMLogger) Warnf(format string, args ...interface{})

Warnf Warn级日志,支持format @param format @param args

func (*CMLogger) Warnw

func (l *CMLogger) Warnw(msg string, keysAndValues ...interface{})

Warnw Warn级日志,支持kv对 @param msg @param keysAndValues

type KafkaLogConfig added in v2.3.0

type KafkaLogConfig struct {
	Servers []string `mapstructure:"servers"`
	// 0: None, 1: Gzip
	Compression int `mapstructure:"compression"`
	//默认的Kafka Topic
	Topic string `mapstructure:"topic"`
	// key: chainId value: topic
	TopicMapping map[string]string `mapstructure:"topic_mapping"`
	KafkaVersion string            `mapstructure:"kafka_version"`
	Sasl         *KafkaSaslConfig  `mapstructure:"sasl"`
}

KafkaLogConfig Kafka记录日志时的配置

func (*KafkaLogConfig) GetTopic added in v2.3.0

func (c *KafkaLogConfig) GetTopic(chainId string) string

GetTopic 根据链ID,获得配置的Kafka的主题 @param chainId @return string

type KafkaLogger added in v2.3.0

type KafkaLogger struct {
	Producer sarama.SyncProducer
	Topic    string
}

KafkaLogger 基于Kafka的Logger记录器

func NewKafkaProducer added in v2.3.0

func NewKafkaProducer(logConfig *KafkaLogConfig, chainId string) (*KafkaLogger, error)

NewKafkaProducer 基于配置,初始化一个新的Kafka生产者 @param logConfig @param chainId @return *KafkaLogger @return error

func (*KafkaLogger) Write added in v2.3.0

func (lk *KafkaLogger) Write(p []byte) (n int, err error)

Write 写入日志到Kafka @param p @return n @return err

type KafkaSaslConfig added in v2.3.0

type KafkaSaslConfig struct {
	Enable   bool   `mapstructure:"enable"`
	UserName string `mapstructure:"username"`
	Password string `mapstructure:"password"`
	// 默认是PLAIN
	Mechanism string `mapstructure:"mechanism"`
	Version   int    `mapstructure:"version"`
}

KafkaSaslConfig Kafka需要安全认证时的配置

type LogConfig

type LogConfig struct {
	ConfigFile string                   `mapstructure:"config_file"`
	SystemLog  LogNodeConfig            `mapstructure:"system"`
	BriefLog   LogNodeConfig            `mapstructure:"brief"`
	EventLog   LogNodeConfig            `mapstructure:"event"`
	ModuleLog  map[string]LogNodeConfig `mapstructure:"module"`
}

LogConfig the config of log module

func DefaultLogConfig

func DefaultLogConfig() *LogConfig

DefaultLogConfig create default config for log module

func (*LogConfig) GetConfigByModuleName added in v2.3.0

func (c *LogConfig) GetConfigByModuleName(pureName string) LogNodeConfig

GetConfigByModuleName 获得某个模块的Log配置 @param pureName @return LogNodeConfig

type LogNodeConfig

type LogNodeConfig struct {
	LogLevelDefault string            `mapstructure:"log_level_default"`
	LogLevels       map[string]string `mapstructure:"log_levels"`
	FilePath        string            `mapstructure:"file_path"`
	MaxAge          int               `mapstructure:"max_age"`
	RotationTime    int               `mapstructure:"rotation_time"`
	RotationSize    int64             `mapstructure:"rotation_size"`
	LogInConsole    bool              `mapstructure:"log_in_console"`
	LogByChain      bool              `mapstructure:"log_by_chain"` //不同的链ID,存储在不同的日志文件夹中
	JsonFormat      bool              `mapstructure:"json_format"`
	ShowColor       bool              `mapstructure:"show_color"`
	StackTraceLevel string            `mapstructure:"stack_trace_level"`
	Kafka           *KafkaLogConfig   `mapstructure:"kafka"`
}

LogNodeConfig the log config of node

func GetDefaultLogNodeConfig

func GetDefaultLogNodeConfig() LogNodeConfig

GetDefaultLogNodeConfig create a default log config of node

func (LogNodeConfig) GetFilePath added in v2.3.0

func (cfg LogNodeConfig) GetFilePath(chainId string) string

GetFilePath calculate log file path by chainId and config @param chainId @return string new file path

Jump to

Keyboard shortcuts

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