@@ -56,12 +56,13 @@ func init() {
5656}
5757
5858type coreLogger struct {
59- selectors map [string ]struct {} // Set of enabled debug selectors.
60- rootLogger * zap.Logger // Root logger without any options configured.
61- globalLogger * zap.Logger // Logger used by legacy global functions (e.g. logp.Info).
62- logger * Logger // Logger that is the basis for all logp.Loggers.
63- level zap.AtomicLevel // The minimum level being printed
64- observedLogs * observer.ObservedLogs // Contains events generated while in observation mode (a testing mode).
59+ selectors map [string ]struct {} // Set of enabled debug selectors.
60+ blockSelectors map [string ]struct {} // Set of blocked debug selectors.
61+ rootLogger * zap.Logger // Root logger without any options configured.
62+ globalLogger * zap.Logger // Logger used by legacy global functions (e.g. logp.Info).
63+ logger * Logger // Logger that is the basis for all logp.Loggers.
64+ level zap.AtomicLevel // The minimum level being printed
65+ observedLogs * observer.ObservedLogs // Contains events generated while in observation mode (a testing mode).
6566}
6667
6768// Configure configures the logp package.
@@ -97,7 +98,12 @@ func ConfigureWithOutputs(cfg Config, outputs ...zapcore.Core) error {
9798
9899 // Enabled selectors when debug is enabled.
99100 selectors := make (map [string ]struct {}, len (cfg .Selectors ))
100- if cfg .Level .Enabled (DebugLevel ) && len (cfg .Selectors ) > 0 {
101+ blockSelectors := make (map [string ]struct {}, len (cfg .BlockSelectors ))
102+ if cfg .Level .Enabled (DebugLevel ) && (len (cfg .Selectors ) > 0 || len (cfg .BlockSelectors ) > 0 ) {
103+ for _ , sel := range cfg .BlockSelectors {
104+ blockSelectors [strings .TrimSpace (sel )] = struct {}{}
105+ }
106+
101107 for _ , sel := range cfg .Selectors {
102108 selectors [strings .TrimSpace (sel )] = struct {}{}
103109 }
@@ -115,18 +121,19 @@ func ConfigureWithOutputs(cfg Config, outputs ...zapcore.Core) error {
115121 golog .SetOutput (_defaultGoLog )
116122 }
117123
118- sink = selectiveWrapper (sink , selectors )
124+ sink = selectiveWrapper (sink , selectors , blockSelectors )
119125 }
120126
121127 sink = newMultiCore (append (outputs , sink )... )
122128 root := zap .New (sink , makeOptions (cfg )... )
123129 storeLogger (& coreLogger {
124- selectors : selectors ,
125- rootLogger : root ,
126- globalLogger : root .WithOptions (zap .AddCallerSkip (1 )),
127- logger : newLogger (root , "" ),
128- level : level ,
129- observedLogs : observedLogs ,
130+ selectors : selectors ,
131+ blockSelectors : blockSelectors ,
132+ rootLogger : root ,
133+ globalLogger : root .WithOptions (zap .AddCallerSkip (1 )),
134+ logger : newLogger (root , "" ),
135+ level : level ,
136+ observedLogs : observedLogs ,
130137 })
131138 return nil
132139}
0 commit comments