@@ -224,13 +224,21 @@ func (a *Admin) Stacktrace(_ *http.Request, _ *struct{}, _ *api.EmptyReply) erro
224
224
return perms .WriteFile (stacktraceFile , stacktrace , perms .ReadWrite )
225
225
}
226
226
227
- // See SetLoggerLevel
228
227
type SetLoggerLevelArgs struct {
229
228
LoggerName string `json:"loggerName"`
230
229
LogLevel * logging.Level `json:"logLevel"`
231
230
DisplayLevel * logging.Level `json:"displayLevel"`
232
231
}
233
232
233
+ type LogAndDisplayLevels struct {
234
+ LogLevel logging.Level `json:"logLevel"`
235
+ DisplayLevel logging.Level `json:"displayLevel"`
236
+ }
237
+
238
+ type LoggerLevelReply struct {
239
+ LoggerLevels map [string ]LogAndDisplayLevels `json:"loggerLevels"`
240
+ }
241
+
234
242
// SetLoggerLevel sets the log level and/or display level for loggers.
235
243
// If len([args.LoggerName]) == 0, sets the log/display level of all loggers.
236
244
// Otherwise, sets the log/display level of the loggers named in that argument.
@@ -240,7 +248,7 @@ type SetLoggerLevelArgs struct {
240
248
// Sets the display level of these loggers to args.LogLevel.
241
249
// If args.DisplayLevel == nil, doesn't set the display level of these loggers.
242
250
// If args.DisplayLevel != nil, must be a valid string representation of a log level.
243
- func (a * Admin ) SetLoggerLevel (_ * http.Request , args * SetLoggerLevelArgs , _ * api. EmptyReply ) error {
251
+ func (a * Admin ) SetLoggerLevel (_ * http.Request , args * SetLoggerLevelArgs , reply * LoggerLevelReply ) error {
244
252
a .Log .Debug ("API called" ,
245
253
zap .String ("service" , "admin" ),
246
254
zap .String ("method" , "setLoggerLevel" ),
@@ -256,14 +264,7 @@ func (a *Admin) SetLoggerLevel(_ *http.Request, args *SetLoggerLevelArgs, _ *api
256
264
a .lock .Lock ()
257
265
defer a .lock .Unlock ()
258
266
259
- var loggerNames []string
260
- if len (args .LoggerName ) > 0 {
261
- loggerNames = []string {args .LoggerName }
262
- } else {
263
- // Empty name means all loggers
264
- loggerNames = a .LogFactory .GetLoggerNames ()
265
- }
266
-
267
+ loggerNames := a .getLoggerNames (args .LoggerName )
267
268
for _ , name := range loggerNames {
268
269
if args .LogLevel != nil {
269
270
if err := a .LogFactory .SetLogLevel (name , * args .LogLevel ); err != nil {
@@ -276,26 +277,18 @@ func (a *Admin) SetLoggerLevel(_ *http.Request, args *SetLoggerLevelArgs, _ *api
276
277
}
277
278
}
278
279
}
279
- return nil
280
- }
281
280
282
- type LogAndDisplayLevels struct {
283
- LogLevel logging. Level `json:"logLevel"`
284
- DisplayLevel logging. Level `json:"displayLevel"`
281
+ var err error
282
+ reply . LoggerLevels , err = a . getLogLevels ( loggerNames )
283
+ return err
285
284
}
286
285
287
- // See GetLoggerLevel
288
286
type GetLoggerLevelArgs struct {
289
287
LoggerName string `json:"loggerName"`
290
288
}
291
289
292
- // See GetLoggerLevel
293
- type GetLoggerLevelReply struct {
294
- LoggerLevels map [string ]LogAndDisplayLevels `json:"loggerLevels"`
295
- }
296
-
297
290
// GetLogLevel returns the log level and display level of all loggers.
298
- func (a * Admin ) GetLoggerLevel (_ * http.Request , args * GetLoggerLevelArgs , reply * GetLoggerLevelReply ) error {
291
+ func (a * Admin ) GetLoggerLevel (_ * http.Request , args * GetLoggerLevelArgs , reply * LoggerLevelReply ) error {
299
292
a .Log .Debug ("API called" ,
300
293
zap .String ("service" , "admin" ),
301
294
zap .String ("method" , "getLoggerLevels" ),
@@ -305,30 +298,11 @@ func (a *Admin) GetLoggerLevel(_ *http.Request, args *GetLoggerLevelArgs, reply
305
298
a .lock .RLock ()
306
299
defer a .lock .RUnlock ()
307
300
308
- reply .LoggerLevels = make (map [string ]LogAndDisplayLevels )
309
- var loggerNames []string
310
- // Empty name means all loggers
311
- if len (args .LoggerName ) > 0 {
312
- loggerNames = []string {args .LoggerName }
313
- } else {
314
- loggerNames = a .LogFactory .GetLoggerNames ()
315
- }
301
+ loggerNames := a .getLoggerNames (args .LoggerName )
316
302
317
- for _ , name := range loggerNames {
318
- logLevel , err := a .LogFactory .GetLogLevel (name )
319
- if err != nil {
320
- return err
321
- }
322
- displayLevel , err := a .LogFactory .GetDisplayLevel (name )
323
- if err != nil {
324
- return err
325
- }
326
- reply .LoggerLevels [name ] = LogAndDisplayLevels {
327
- LogLevel : logLevel ,
328
- DisplayLevel : displayLevel ,
329
- }
330
- }
331
- return nil
303
+ var err error
304
+ reply .LoggerLevels , err = a .getLogLevels (loggerNames )
305
+ return err
332
306
}
333
307
334
308
// GetConfig returns the config that the node was started with.
@@ -375,3 +349,30 @@ func (a *Admin) LoadVMs(r *http.Request, _ *struct{}, reply *LoadVMsReply) error
375
349
reply .NewVMs , err = ids .GetRelevantAliases (a .VMManager , loadedVMs )
376
350
return err
377
351
}
352
+
353
+ func (a * Admin ) getLoggerNames (loggerName string ) []string {
354
+ if len (loggerName ) == 0 {
355
+ // Empty name means all loggers
356
+ return a .LogFactory .GetLoggerNames ()
357
+ }
358
+ return []string {loggerName }
359
+ }
360
+
361
+ func (a * Admin ) getLogLevels (loggerNames []string ) (map [string ]LogAndDisplayLevels , error ) {
362
+ loggerLevels := make (map [string ]LogAndDisplayLevels )
363
+ for _ , name := range loggerNames {
364
+ logLevel , err := a .LogFactory .GetLogLevel (name )
365
+ if err != nil {
366
+ return nil , err
367
+ }
368
+ displayLevel , err := a .LogFactory .GetDisplayLevel (name )
369
+ if err != nil {
370
+ return nil , err
371
+ }
372
+ loggerLevels [name ] = LogAndDisplayLevels {
373
+ LogLevel : logLevel ,
374
+ DisplayLevel : displayLevel ,
375
+ }
376
+ }
377
+ return loggerLevels , nil
378
+ }
0 commit comments