dubbo.apache.org/dubbo-go/v3@v3.1.1/xds/utils/grpclog/prefixLogger.go (about) 1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. 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 /* 19 * 20 * Copyright 2020 gRPC authors. 21 * 22 */ 23 24 package grpclog 25 26 import ( 27 "fmt" 28 ) 29 30 // PrefixLogger does logging with a prefix. 31 // 32 // Logging method on a nil logs without any prefix. 33 type PrefixLogger struct { 34 logger DepthLoggerV2 35 prefix string 36 } 37 38 // Infof does info logging. 39 func (pl *PrefixLogger) Infof(format string, args ...interface{}) { 40 if pl != nil { 41 // Handle nil, so the tests can pass in a nil logger. 42 format = pl.prefix + format 43 pl.logger.InfoDepth(1, fmt.Sprintf(format, args...)) 44 return 45 } 46 InfoDepth(1, fmt.Sprintf(format, args...)) 47 } 48 49 // Warnf does warning logging. 50 func (pl *PrefixLogger) Warnf(format string, args ...interface{}) { 51 if pl != nil { 52 format = pl.prefix + format 53 pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) 54 return 55 } 56 WarningDepth(1, fmt.Sprintf(format, args...)) 57 } 58 59 // Errorf does error logging. 60 func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { 61 if pl != nil { 62 format = pl.prefix + format 63 pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) 64 return 65 } 66 ErrorDepth(1, fmt.Sprintf(format, args...)) 67 } 68 69 // NewPrefixLogger creates a prefix logger with the given prefix. 70 func NewPrefixLogger(logger DepthLoggerV2, prefix string) *PrefixLogger { 71 return &PrefixLogger{logger: logger, prefix: prefix} 72 }