github.com/masterhung0112/hk_server/v5@v5.0.0-20220302090640-ec71aef15e1c/utils/logger.go (about) 1 package utils 2 3 import ( 4 "path/filepath" 5 "strings" 6 7 "github.com/masterhung0112/hk_server/v5/model" 8 "github.com/masterhung0112/hk_server/v5/shared/mlog" 9 "github.com/masterhung0112/hk_server/v5/utils/fileutils" 10 ) 11 12 const ( 13 LogRotateSize = 10000 14 LogFilename = "mattermost.log" 15 LogNotificationFilename = "notifications.log" 16 ) 17 18 type fileLocationFunc func(string) string 19 20 func MloggerConfigFromLoggerConfig(s *model.LogSettings, getFileFunc fileLocationFunc) *mlog.LoggerConfiguration { 21 return &mlog.LoggerConfiguration{ 22 EnableConsole: *s.EnableConsole, 23 ConsoleJson: *s.ConsoleJson, 24 ConsoleLevel: strings.ToLower(*s.ConsoleLevel), 25 EnableFile: *s.EnableFile, 26 FileJson: *s.FileJson, 27 FileLevel: strings.ToLower(*s.FileLevel), 28 FileLocation: getFileFunc(*s.FileLocation), 29 EnableColor: *s.EnableColor, 30 } 31 } 32 33 func GetLogFileLocation(fileLocation string) string { 34 if fileLocation == "" { 35 fileLocation, _ = fileutils.FindDir("logs") 36 } 37 38 return filepath.Join(fileLocation, LogFilename) 39 } 40 41 func GetNotificationsLogFileLocation(fileLocation string) string { 42 if fileLocation == "" { 43 fileLocation, _ = fileutils.FindDir("logs") 44 } 45 46 return filepath.Join(fileLocation, LogNotificationFilename) 47 } 48 49 func GetLogSettingsFromNotificationsLogSettings(notificationLogSettings *model.NotificationLogSettings) *model.LogSettings { 50 return &model.LogSettings{ 51 ConsoleJson: notificationLogSettings.ConsoleJson, 52 ConsoleLevel: notificationLogSettings.ConsoleLevel, 53 EnableConsole: notificationLogSettings.EnableConsole, 54 EnableFile: notificationLogSettings.EnableFile, 55 FileJson: notificationLogSettings.FileJson, 56 FileLevel: notificationLogSettings.FileLevel, 57 FileLocation: notificationLogSettings.FileLocation, 58 AdvancedLoggingConfig: notificationLogSettings.AdvancedLoggingConfig, 59 EnableColor: notificationLogSettings.EnableColor, 60 } 61 } 62 63 // DON'T USE THIS Modify the level on the app logger 64 func DisableDebugLogForTest() { 65 mlog.GloballyDisableDebugLogForTest() 66 } 67 68 // DON'T USE THIS Modify the level on the app logger 69 func EnableDebugLogForTest() { 70 mlog.GloballyEnableDebugLogForTest() 71 }