github.com/abolfazlbeh/zhycan@v0.0.0-20230819144214-24cf38237387/pkg/logger/logger.go (about) 1 package logger 2 3 import ( 4 "github.com/abolfazlbeh/zhycan/internal/logger" 5 "time" 6 ) 7 8 type LogError logger.Error 9 type LogObject logger.LogObject 10 type LogLevel logger.LogLevel 11 type LogType logger.LogType 12 13 // Some Constants - used with LogLevel 14 const ( 15 DEBUG LogLevel = LogLevel(logger.DEBUG) 16 INFO LogLevel = LogLevel(logger.INFO) 17 WARNING LogLevel = LogLevel(logger.WARNING) 18 ERROR LogLevel = LogLevel(logger.ERROR) 19 ) 20 21 var ( 22 FuncMaintenanceType LogType = LogType(logger.NewLogType(logger.FuncMaintenanceType.String())) 23 DebugType LogType = LogType(logger.NewLogType(logger.DebugType.String())) 24 ) 25 26 // NewLogObject - enhance method to create and return reference of LogObject 27 func NewLogObject(level LogLevel, module string, logType LogType, eventTime time.Time, message interface{}, additional interface{}) *LogObject { 28 return &LogObject{ 29 Level: logger.LogLevel(level), 30 Module: module, 31 LogType: logger.LogType(logType).String(), 32 Time: eventTime.UTC().UnixNano(), 33 Message: message, 34 Additional: additional, 35 } 36 } 37 38 // Log - write log object to the channel 39 func Log(object *LogObject) *LogError { 40 l, err := logger.GetManager().GetLogger() 41 if err == nil { 42 if l.IsInitialized() { 43 p := logger.LogObject(*object) 44 l.Log(&p) 45 } 46 return nil 47 } 48 49 p := LogError(*err) 50 return &p 51 } 52 53 // Sync - sync all logs to medium 54 func Sync() *LogError { 55 l, err := logger.GetManager().GetLogger() 56 if err == nil { 57 if l.IsInitialized() { 58 l.Sync() 59 } 60 return nil 61 } 62 63 p := LogError(*err) 64 return &p 65 } 66 67 // Close - it closes logger channel 68 func Close() *LogError { 69 l, err := logger.GetManager().GetLogger() 70 if err == nil { 71 if l.IsInitialized() { 72 l.Close() 73 } 74 return nil 75 } 76 77 p := LogError(*err) 78 return &p 79 }