prefixLogger.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. *
  3. * Copyright 2020 gRPC authors.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. *
  17. */
  18. package grpclog
  19. // PrefixLogger does logging with a prefix.
  20. //
  21. // Logging method on a nil logs without any prefix.
  22. type PrefixLogger struct {
  23. prefix string
  24. }
  25. // Infof does info logging.
  26. func (pl *PrefixLogger) Infof(format string, args ...interface{}) {
  27. if pl != nil {
  28. // Handle nil, so the tests can pass in a nil logger.
  29. format = pl.prefix + format
  30. }
  31. Logger.Infof(format, args...)
  32. }
  33. // Warningf does warning logging.
  34. func (pl *PrefixLogger) Warningf(format string, args ...interface{}) {
  35. if pl != nil {
  36. format = pl.prefix + format
  37. }
  38. Logger.Warningf(format, args...)
  39. }
  40. // Errorf does error logging.
  41. func (pl *PrefixLogger) Errorf(format string, args ...interface{}) {
  42. if pl != nil {
  43. format = pl.prefix + format
  44. }
  45. Logger.Errorf(format, args...)
  46. }
  47. // Debugf does info logging at verbose level 2.
  48. func (pl *PrefixLogger) Debugf(format string, args ...interface{}) {
  49. if Logger.V(2) {
  50. pl.Infof(format, args...)
  51. }
  52. }
  53. // NewPrefixLogger creates a prefix logger with the given prefix.
  54. func NewPrefixLogger(prefix string) *PrefixLogger {
  55. return &PrefixLogger{prefix: prefix}
  56. }