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  }