| 4712 | } |
| 4713 | |
| 4714 | func (s *BgpServer) SetLogLevel(ctx context.Context, r *api.SetLogLevelRequest) error { |
| 4715 | var newLevel slog.Level |
| 4716 | switch r.Level { |
| 4717 | case api.SetLogLevelRequest_LEVEL_ERROR: |
| 4718 | newLevel = slog.LevelError |
| 4719 | case api.SetLogLevelRequest_LEVEL_WARN: |
| 4720 | newLevel = slog.LevelWarn |
| 4721 | case api.SetLogLevelRequest_LEVEL_INFO: |
| 4722 | newLevel = slog.LevelInfo |
| 4723 | case api.SetLogLevelRequest_LEVEL_DEBUG: |
| 4724 | newLevel = slog.LevelDebug |
| 4725 | default: |
| 4726 | return status.Errorf(codes.InvalidArgument, "Unknown log level %s", r.Level) |
| 4727 | } |
| 4728 | |
| 4729 | if s.logLevelVar != nil { |
| 4730 | lvl := s.logLevelVar.Level() |
| 4731 | if lvl == newLevel { |
| 4732 | s.logger.Info("Logging level unchanged", |
| 4733 | slog.String("Topic", "Config"), |
| 4734 | slog.String("OldLevel", lvl.String()), |
| 4735 | slog.String("NewLevel", newLevel.String())) |
| 4736 | } else { |
| 4737 | s.logLevelVar.Set(newLevel) |
| 4738 | s.logger.Warn("Logging level changed", |
| 4739 | slog.String("Topic", "Config"), |
| 4740 | slog.String("OldLevel", lvl.String()), |
| 4741 | slog.String("NewLevel", newLevel.String())) |
| 4742 | } |
| 4743 | return nil |
| 4744 | } |
| 4745 | return nil |
| 4746 | } |
| 4747 | |
| 4748 | func (s *BgpServer) Log() *slog.Logger { |
| 4749 | return s.logger |