mirror of https://github.com/spf13/viper.git
add:viper: allow to disable internal log messages
This commit is contained in:
parent
2ee16310d0
commit
98b1b9fd42
18
viper.go
18
viper.go
|
@ -205,6 +205,7 @@ type Viper struct {
|
||||||
automaticEnvApplied bool
|
automaticEnvApplied bool
|
||||||
envKeyReplacer StringReplacer
|
envKeyReplacer StringReplacer
|
||||||
allowEmptyEnv bool
|
allowEmptyEnv bool
|
||||||
|
logMessage bool
|
||||||
|
|
||||||
parents []string
|
parents []string
|
||||||
config map[string]interface{}
|
config map[string]interface{}
|
||||||
|
@ -242,6 +243,7 @@ func New() *Viper {
|
||||||
v.aliases = make(map[string]string)
|
v.aliases = make(map[string]string)
|
||||||
v.typeByDefValue = false
|
v.typeByDefValue = false
|
||||||
v.logger = jwwLogger{}
|
v.logger = jwwLogger{}
|
||||||
|
v.logMessage = true
|
||||||
|
|
||||||
v.resetEncoding()
|
v.resetEncoding()
|
||||||
|
|
||||||
|
@ -270,6 +272,14 @@ func KeyDelimiter(d string) Option {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DisableMessageLog block any kind of messages to be logged.
|
||||||
|
// By default, all messages are logged.
|
||||||
|
func DisableMessageLog() Option {
|
||||||
|
return optionFunc(func(v *Viper) {
|
||||||
|
v.logMessage = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// StringReplacer applies a set of replacements to a string.
|
// StringReplacer applies a set of replacements to a string.
|
||||||
type StringReplacer interface {
|
type StringReplacer interface {
|
||||||
// Replace returns a copy of s with all replacements performed.
|
// Replace returns a copy of s with all replacements performed.
|
||||||
|
@ -440,14 +450,16 @@ func (v *Viper) WatchConfig() {
|
||||||
initWG.Add(1)
|
initWG.Add(1)
|
||||||
go func() {
|
go func() {
|
||||||
watcher, err := newWatcher()
|
watcher, err := newWatcher()
|
||||||
if err != nil {
|
if err != nil && v.logMessage {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
defer watcher.Close()
|
defer watcher.Close()
|
||||||
// we have to watch the entire directory to pick up renames/atomic saves in a cross-platform way
|
// we have to watch the entire directory to pick up renames/atomic saves in a cross-platform way
|
||||||
filename, err := v.getConfigFile()
|
filename, err := v.getConfigFile()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if v.logMessage {
|
||||||
log.Printf("error: %v\n", err)
|
log.Printf("error: %v\n", err)
|
||||||
|
}
|
||||||
initWG.Done()
|
initWG.Done()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -475,7 +487,7 @@ func (v *Viper) WatchConfig() {
|
||||||
(currentConfigFile != "" && currentConfigFile != realConfigFile) {
|
(currentConfigFile != "" && currentConfigFile != realConfigFile) {
|
||||||
realConfigFile = currentConfigFile
|
realConfigFile = currentConfigFile
|
||||||
err := v.ReadInConfig()
|
err := v.ReadInConfig()
|
||||||
if err != nil {
|
if err != nil && v.logMessage {
|
||||||
log.Printf("error reading config file: %v\n", err)
|
log.Printf("error reading config file: %v\n", err)
|
||||||
}
|
}
|
||||||
if v.onConfigChange != nil {
|
if v.onConfigChange != nil {
|
||||||
|
@ -487,7 +499,7 @@ func (v *Viper) WatchConfig() {
|
||||||
}
|
}
|
||||||
|
|
||||||
case err, ok := <-watcher.Errors:
|
case err, ok := <-watcher.Errors:
|
||||||
if ok { // 'Errors' channel is not closed
|
if ok && v.logMessage { // 'Errors' channel is not closed
|
||||||
log.Printf("watcher error: %v\n", err)
|
log.Printf("watcher error: %v\n", err)
|
||||||
}
|
}
|
||||||
eventsWG.Done()
|
eventsWG.Done()
|
||||||
|
|
Loading…
Reference in New Issue