Documentation
¶
Overview ¶
trace_logger is a tool to record trace log.
Index ¶
- Constants
- func AutoDelete(duration time.Duration, method ...DeleteMethod) error
- func AutoSync(duration time.Duration) error
- func CancelAutoDelete() error
- func CancelAutoSync() error
- func ClearAll() error
- func Init(config TraceLoggerConfig) error
- func InitTraceLoggerManager(config TraceLoggerConfig) error
- func LoadAll(path string, prefix ...string) error
- func ParseTimeUnit(timeStr string) (time.Duration, error)
- func ParseTimeUnitWithDefault(timeStr string, defaultTime time.Duration) time.Duration
- func Start(config TraceLoggerConfig)
- func SyncAll() error
- func UpdateKey(oldKey, newKey string) error
- type DefaultTraceLoggerManager
- func (d *DefaultTraceLoggerManager) AutoDelete(duration time.Duration, methods ...DeleteMethod) error
- func (d *DefaultTraceLoggerManager) AutoSync(duration time.Duration) error
- func (d *DefaultTraceLoggerManager) CancelAutoDelete() error
- func (d *DefaultTraceLoggerManager) CancelAutoSync() error
- func (d *DefaultTraceLoggerManager) ClearAll() error
- func (d *DefaultTraceLoggerManager) DeleteUnusedCache(timeout time.Duration, methods ...DeleteMethod) error
- func (d *DefaultTraceLoggerManager) GetAllTraceFromCache() []Trace
- func (d *DefaultTraceLoggerManager) GetTraceFromCache(key string) (Trace, bool)
- func (d *DefaultTraceLoggerManager) Key(key string) TraceLogger
- func (d *DefaultTraceLoggerManager) KeyWithUpdate(key string) TraceLogger
- func (d *DefaultTraceLoggerManager) LoadAll(path string, prefixes ...string) (err error)
- func (d *DefaultTraceLoggerManager) NewTraceLogger() TraceLogger
- func (d *DefaultTraceLoggerManager) SetTraceToCache(key string, trace Trace) (err error)
- func (d *DefaultTraceLoggerManager) StoreTraceToFile(trace Trace)
- func (d *DefaultTraceLoggerManager) String() string
- func (d *DefaultTraceLoggerManager) SyncAll() error
- func (d *DefaultTraceLoggerManager) UpdateKey(key string, newKey string) error
- type DeleteMethod
- type Trace
- type TraceLogger
- type TraceLoggerConfig
- type TraceLoggerManager
Constants ¶
const ( DefaultDir string = "./" DefaultFilePrefix string = "trace_logger" DefaultLevel string = "INFO" DefaultMaxKeepDays int = 7 DefaultMaxFileNum int = 3 DefaultMaxFileSizeInMB int = 10 DefaultTimeout string = "2h" DefaultMaxCacheSize int = 10000 DefaultSyncInterval string = "10m" DefaultDeleteInterval string = "1m" LogrusField = "trace_logger" )
default configs
const ( NoKeyError = "no key has been set" NoTraceError = "no trace has been set" LogLevelStringSize = 4 CacheLoadFactor = 0.75 LogStringFormat = "2006-01-02 15:04:05.06" )
define errors
Variables ¶
This section is empty.
Functions ¶
func AutoDelete ¶
func AutoDelete(duration time.Duration, method ...DeleteMethod) error
func CancelAutoDelete ¶
func CancelAutoDelete() error
func CancelAutoSync ¶
func CancelAutoSync() error
func Init ¶
func Init(config TraceLoggerConfig) error
func InitTraceLoggerManager ¶
func InitTraceLoggerManager(config TraceLoggerConfig) error
func Start ¶
func Start(config TraceLoggerConfig)
Types ¶
type DefaultTraceLoggerManager ¶
type DefaultTraceLoggerManager struct {
// contains filtered or unexported fields
}
func NewDefaultTraceLoggerManager ¶
func NewDefaultTraceLoggerManager(cacheSize int, timeout time.Duration, debug bool) *DefaultTraceLoggerManager
func (*DefaultTraceLoggerManager) AutoDelete ¶
func (d *DefaultTraceLoggerManager) AutoDelete(duration time.Duration, methods ...DeleteMethod) error
func (*DefaultTraceLoggerManager) AutoSync ¶
func (d *DefaultTraceLoggerManager) AutoSync(duration time.Duration) error
func (*DefaultTraceLoggerManager) CancelAutoDelete ¶
func (d *DefaultTraceLoggerManager) CancelAutoDelete() error
func (*DefaultTraceLoggerManager) CancelAutoSync ¶
func (d *DefaultTraceLoggerManager) CancelAutoSync() error
func (*DefaultTraceLoggerManager) ClearAll ¶
func (d *DefaultTraceLoggerManager) ClearAll() error
ClearAll will clear all the trace from the cache please sync the cache before calling this function
func (*DefaultTraceLoggerManager) DeleteUnusedCache ¶
func (d *DefaultTraceLoggerManager) DeleteUnusedCache(timeout time.Duration, methods ...DeleteMethod) error
func (*DefaultTraceLoggerManager) GetAllTraceFromCache ¶
func (d *DefaultTraceLoggerManager) GetAllTraceFromCache() []Trace
func (*DefaultTraceLoggerManager) GetTraceFromCache ¶
func (d *DefaultTraceLoggerManager) GetTraceFromCache(key string) (Trace, bool)
func (*DefaultTraceLoggerManager) Key ¶
func (d *DefaultTraceLoggerManager) Key(key string) TraceLogger
func (*DefaultTraceLoggerManager) KeyWithUpdate ¶
func (d *DefaultTraceLoggerManager) KeyWithUpdate(key string) TraceLogger
func (*DefaultTraceLoggerManager) LoadAll ¶
func (d *DefaultTraceLoggerManager) LoadAll(path string, prefixes ...string) (err error)
LoadAll will load all the trace from the file, and replace local cache
func (*DefaultTraceLoggerManager) NewTraceLogger ¶
func (d *DefaultTraceLoggerManager) NewTraceLogger() TraceLogger
func (*DefaultTraceLoggerManager) SetTraceToCache ¶
func (d *DefaultTraceLoggerManager) SetTraceToCache(key string, trace Trace) (err error)
func (*DefaultTraceLoggerManager) StoreTraceToFile ¶
func (d *DefaultTraceLoggerManager) StoreTraceToFile(trace Trace)
func (*DefaultTraceLoggerManager) String ¶
func (d *DefaultTraceLoggerManager) String() string
func (*DefaultTraceLoggerManager) SyncAll ¶
func (d *DefaultTraceLoggerManager) SyncAll() error
type DeleteMethod ¶
DeleteMethod return true to delete
var DefaultDeleteMethod DeleteMethod = func(key string) bool { return true }
TODO: add custom delete method
var DeleteFunc DeleteMethod = func(key string) bool { run, err := models.GetRunByID(log.NewEntry(log.StandardLogger()), key) if err != nil { return true } if common.IsRunFinalStatus(run.Status) { return true } return false }
DeleteFunc delete function for trace log
type Trace ¶
type Trace struct {
Logs []traceLog
UpdateTime time.Time
// contains filtered or unexported fields
}
func GetJobTracesByRunID ¶
GetJobTracesByRunID for run and job relation mapping
func GetTraceFromCache ¶
func GetTracesByRunIDAndJobID ¶
GetTracesByRunIDAndJobID return the traces by run or job id, if not found, return nil, false it will return related run and job log for runID, and related job log for jobID, it will omit empty IDs
type TraceLogger ¶
type TraceLogger interface {
// fileLogger interface
Infof(format string, args ...interface{})
Debugf(format string, args ...interface{})
Warnf(format string, args ...interface{})
Errorf(format string, args ...interface{})
Fatalf(format string, args ...interface{})
Panicf(format string, args ...interface{})
// trace interface
SetKey(key string)
GetKey() string
GetTrace() Trace
UpdateTraceWithKey(key string) error
UpdateTrace() error
}
func Key ¶
func Key(key string) TraceLogger
Key this function will create a trace fileLogger for every unique key, the logs will be saved to a same slice when use same trace fileLogger. A new key will be treated as temp key, logs will not be saved until the key is updated by UpdateKey.
func KeyWithUpdate ¶
func KeyWithUpdate(key string) TraceLogger
KeyWithUpdate same behavior as Key method, but the key will be updated to newKey after the fileLogger is created. i.e. KeyWithUpdate behave same as Key(key1) + UpdateKey(key1, key1)
type TraceLoggerConfig ¶
type TraceLoggerConfig struct {
Dir string `yaml:"dir"` // Dir log file dir
FilePrefix string `yaml:"filePrefix"` // FilePrefix log file prefix
Level string `yaml:"level"` // Level log level
MaxKeepDays int `yaml:"maxKeepDays"` // MaxKeepDays max keep days for log rotation
MaxFileNum int `yaml:"maxFileNum"` // MaxFileNum max file num for log rotation
MaxFileSizeInMB int `yaml:"maxFileSizeInMB"` // MaxFileSizeInMB max file size in MB for log rotation
IsCompress bool `yaml:"isCompress"` // IsCompress is compress log file
Timeout string `yaml:"timeout"` // Timeout for local cache
MaxCacheSize int `yaml:"maxCacheSize"` // MaxCacheSize max local cache size, evict when cache size exceed this value
SyncInterval string `yaml:"syncInterval"` // SyncInterval auto syncs interval
DeleteInterval string `yaml:"deleteInterval"` // DeleteInterval auto delete interval
Debug bool `yaml:"debug"` // Debug is debug mode, print log to stdout if set true
}
type TraceLoggerManager ¶
type TraceLoggerManager interface {
NewTraceLogger() TraceLogger
GetTraceFromCache(key string) (Trace, bool)
GetAllTraceFromCache() []Trace
SetTraceToCache(key string, trace Trace) error
UpdateKey(key string, newKey string) error
Key(key string) TraceLogger
KeyWithUpdate(key string) TraceLogger
SyncAll() error
LoadAll(path string, prefix ...string) error
ClearAll() error
DeleteUnusedCache(timeout time.Duration, method ...DeleteMethod) error
AutoDelete(duration time.Duration, method ...DeleteMethod) error
CancelAutoDelete() error
AutoSync(duration time.Duration) error
CancelAutoSync() error
}