mirror of
https://github.com/pgsty/minio.git
synced 2026-07-19 04:00:25 +03:00
config: setter/getter for Notifier and Logger into its own struct. (#3721)
This is an attempt cleanup code and keep the top level config functions simpler and easy to understand where as move the notifier related code and logger setter/getter methods as part of their own struct. Locks are now held properly not globally by configMutex, but instead as private variables. Final fix for #3700
This commit is contained in:
@@ -39,11 +39,41 @@ var log = struct {
|
||||
// - console [default]
|
||||
// - file
|
||||
type logger struct {
|
||||
sync.RWMutex
|
||||
Console consoleLogger `json:"console"`
|
||||
File fileLogger `json:"file"`
|
||||
// Add new loggers here.
|
||||
}
|
||||
|
||||
/// Logger related.
|
||||
|
||||
// SetFile set new file logger.
|
||||
func (l *logger) SetFile(flogger fileLogger) {
|
||||
l.Lock()
|
||||
defer l.Unlock()
|
||||
l.File = flogger
|
||||
}
|
||||
|
||||
// GetFileLogger get current file logger.
|
||||
func (l *logger) GetFile() fileLogger {
|
||||
l.RLock()
|
||||
defer l.RUnlock()
|
||||
return l.File
|
||||
}
|
||||
|
||||
// SetConsole set new console logger.
|
||||
func (l *logger) SetConsole(clogger consoleLogger) {
|
||||
l.Lock()
|
||||
defer l.Unlock()
|
||||
l.Console = clogger
|
||||
}
|
||||
|
||||
func (l *logger) GetConsole() consoleLogger {
|
||||
l.RLock()
|
||||
defer l.RUnlock()
|
||||
return l.Console
|
||||
}
|
||||
|
||||
// Get file, line, function name of the caller.
|
||||
func callerSource() string {
|
||||
pc, file, line, success := runtime.Caller(2)
|
||||
|
||||
Reference in New Issue
Block a user