@@ -39,7 +39,6 @@ import (
39
39
"github.com/mitchellh/mapstructure"
40
40
"github.com/spf13/afero"
41
41
"github.com/spf13/cast"
42
- jww "github.com/spf13/jwalterweatherman"
43
42
"github.com/spf13/pflag"
44
43
"github.com/subosito/gotenv"
45
44
"gopkg.in/ini.v1"
@@ -260,6 +259,8 @@ type Viper struct {
260
259
properties * properties.Properties
261
260
262
261
onConfigChange func (fsnotify.Event )
262
+
263
+ logger Logger
263
264
}
264
265
265
266
// New returns an initialized Viper instance.
@@ -277,6 +278,7 @@ func New() *Viper {
277
278
v .env = make (map [string ][]string )
278
279
v .aliases = make (map [string ]string )
279
280
v .typeByDefValue = false
281
+ v .logger = jwwLogger {}
280
282
281
283
return v
282
284
}
@@ -517,8 +519,9 @@ func AddConfigPath(in string) { v.AddConfigPath(in) }
517
519
518
520
func (v * Viper ) AddConfigPath (in string ) {
519
521
if in != "" {
520
- absin := absPathify (in )
521
- jww .INFO .Println ("adding" , absin , "to paths to search" )
522
+ absin := absPathify (v .logger , in )
523
+
524
+ v .logger .Info ("adding path to search paths" , "path" , absin )
522
525
if ! stringInSlice (absin , v .configPaths ) {
523
526
v .configPaths = append (v .configPaths , absin )
524
527
}
@@ -542,7 +545,8 @@ func (v *Viper) AddRemoteProvider(provider, endpoint, path string) error {
542
545
return UnsupportedRemoteProviderError (provider )
543
546
}
544
547
if provider != "" && endpoint != "" {
545
- jww .INFO .Printf ("adding %s:%s to remote provider list" , provider , endpoint )
548
+ v .logger .Info ("adding remote provider" , "provider" , provider , "endpoint" , endpoint )
549
+
546
550
rp := & defaultRemoteProvider {
547
551
endpoint : endpoint ,
548
552
provider : provider ,
@@ -574,7 +578,8 @@ func (v *Viper) AddSecureRemoteProvider(provider, endpoint, path, secretkeyring
574
578
return UnsupportedRemoteProviderError (provider )
575
579
}
576
580
if provider != "" && endpoint != "" {
577
- jww .INFO .Printf ("adding %s:%s to remote provider list" , provider , endpoint )
581
+ v .logger .Info ("adding remote provider" , "provider" , provider , "endpoint" , endpoint )
582
+
578
583
rp := & defaultRemoteProvider {
579
584
endpoint : endpoint ,
580
585
provider : provider ,
@@ -1390,14 +1395,15 @@ func (v *Viper) registerAlias(alias string, key string) {
1390
1395
v .aliases [alias ] = key
1391
1396
}
1392
1397
} else {
1393
- jww . WARN . Println ( "Creating circular reference alias" , alias , key , v .realKey (key ))
1398
+ v . logger . Warn ( "creating circular reference alias" , " alias" , alias , " key" , key , "real_key" , v .realKey (key ))
1394
1399
}
1395
1400
}
1396
1401
1397
1402
func (v * Viper ) realKey (key string ) string {
1398
1403
newkey , exists := v .aliases [key ]
1399
1404
if exists {
1400
- jww .DEBUG .Println ("Alias" , key , "to" , newkey )
1405
+ v .logger .Debug ("key is an alias" , "alias" , key , "to" , newkey )
1406
+
1401
1407
return v .realKey (newkey )
1402
1408
}
1403
1409
return key
@@ -1458,7 +1464,7 @@ func (v *Viper) Set(key string, value interface{}) {
1458
1464
func ReadInConfig () error { return v .ReadInConfig () }
1459
1465
1460
1466
func (v * Viper ) ReadInConfig () error {
1461
- jww . INFO . Println ( "Attempting to read in config file" )
1467
+ v . logger . Info ( "attempting to read in config file" )
1462
1468
filename , err := v .getConfigFile ()
1463
1469
if err != nil {
1464
1470
return err
@@ -1468,7 +1474,7 @@ func (v *Viper) ReadInConfig() error {
1468
1474
return UnsupportedConfigError (v .getConfigType ())
1469
1475
}
1470
1476
1471
- jww . DEBUG . Println ( "Reading file: " , filename )
1477
+ v . logger . Debug ( "reading file" , "file " , filename )
1472
1478
file , err := afero .ReadFile (v .fs , filename )
1473
1479
if err != nil {
1474
1480
return err
@@ -1489,7 +1495,7 @@ func (v *Viper) ReadInConfig() error {
1489
1495
func MergeInConfig () error { return v .MergeInConfig () }
1490
1496
1491
1497
func (v * Viper ) MergeInConfig () error {
1492
- jww . INFO . Println ( "Attempting to merge in config file" )
1498
+ v . logger . Info ( "attempting to merge in config file" )
1493
1499
filename , err := v .getConfigFile ()
1494
1500
if err != nil {
1495
1501
return err
@@ -1580,7 +1586,8 @@ func (v *Viper) SafeWriteConfigAs(filename string) error {
1580
1586
}
1581
1587
1582
1588
func (v * Viper ) writeConfig (filename string , force bool ) error {
1583
- jww .INFO .Println ("Attempting to write configuration to file." )
1589
+ v .logger .Info ("attempting to write configuration to file" )
1590
+
1584
1591
var configType string
1585
1592
1586
1593
ext := filepath .Ext (filename )
@@ -1796,7 +1803,7 @@ func mergeMaps(
1796
1803
for sk , sv := range src {
1797
1804
tk := keyExists (sk , tgt )
1798
1805
if tk == "" {
1799
- jww . TRACE . Printf ( "tk= \" \" , tgt[%s]=%v " , sk , sv )
1806
+ v . logger . Trace ( "" , "tk" , " \" \" " , fmt . Sprintf ( " tgt[%s]" , sk ) , sv )
1800
1807
tgt [sk ] = sv
1801
1808
if itgt != nil {
1802
1809
itgt [sk ] = sv
@@ -1806,7 +1813,7 @@ func mergeMaps(
1806
1813
1807
1814
tv , ok := tgt [tk ]
1808
1815
if ! ok {
1809
- jww . TRACE . Printf ( "tgt [%s] != ok, tgt[%s]=%v " , tk , sk , sv )
1816
+ v . logger . Trace ( "" , fmt . Sprintf ( "ok [%s]" , tk ), false , fmt . Sprintf ( " tgt[%s]" , sk ) , sv )
1810
1817
tgt [sk ] = sv
1811
1818
if itgt != nil {
1812
1819
itgt [sk ] = sv
@@ -1817,27 +1824,38 @@ func mergeMaps(
1817
1824
svType := reflect .TypeOf (sv )
1818
1825
tvType := reflect .TypeOf (tv )
1819
1826
if tvType != nil && svType != tvType { // Allow for the target to be nil
1820
- jww .ERROR .Printf (
1821
- "svType != tvType; key=%s, st=%v, tt=%v, sv=%v, tv=%v" ,
1822
- sk , svType , tvType , sv , tv )
1827
+ v .logger .Error (
1828
+ "svType != tvType" ,
1829
+ "key" , sk ,
1830
+ "st" , svType ,
1831
+ "tt" , tvType ,
1832
+ "sv" , sv ,
1833
+ "tv" , tv ,
1834
+ )
1823
1835
continue
1824
1836
}
1825
1837
1826
- jww .TRACE .Printf ("processing key=%s, st=%v, tt=%v, sv=%v, tv=%v" ,
1827
- sk , svType , tvType , sv , tv )
1838
+ v .logger .Trace (
1839
+ "processing" ,
1840
+ "key" , sk ,
1841
+ "st" , svType ,
1842
+ "tt" , tvType ,
1843
+ "sv" , sv ,
1844
+ "tv" , tv ,
1845
+ )
1828
1846
1829
1847
switch ttv := tv .(type ) {
1830
1848
case map [interface {}]interface {}:
1831
- jww . TRACE . Printf ("merging maps (must convert)" )
1849
+ v . logger . Trace ("merging maps (must convert)" )
1832
1850
tsv := sv .(map [interface {}]interface {})
1833
1851
ssv := castToMapStringInterface (tsv )
1834
1852
stv := castToMapStringInterface (ttv )
1835
1853
mergeMaps (ssv , stv , ttv )
1836
1854
case map [string ]interface {}:
1837
- jww . TRACE . Printf ("merging maps" )
1855
+ v . logger . Trace ("merging maps" )
1838
1856
mergeMaps (sv .(map [string ]interface {}), ttv , nil )
1839
1857
default :
1840
- jww . TRACE . Printf ("setting value" )
1858
+ v . logger . Trace ("setting value" )
1841
1859
tgt [tk ] = sv
1842
1860
if itgt != nil {
1843
1861
itgt [tk ] = sv
@@ -1872,7 +1890,7 @@ func (v *Viper) getKeyValueConfig() error {
1872
1890
for _ , rp := range v .remoteProviders {
1873
1891
val , err := v .getRemoteConfig (rp )
1874
1892
if err != nil {
1875
- jww . ERROR . Printf ( "get remote config: %s " , err )
1893
+ v . logger . Error ( fmt . Errorf ( "get remote config: %w " , err ). Error () )
1876
1894
1877
1895
continue
1878
1896
}
0 commit comments