cubefs

Форк
0
126 строк · 4.9 Кб
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

19
// Package grpclog (internal) defines depth logging for grpc.
20
package grpclog
21

22
import (
23
	"os"
24
)
25

26
// Logger is the logger used for the non-depth log functions.
27
var Logger LoggerV2
28

29
// DepthLogger is the logger used for the depth log functions.
30
var DepthLogger DepthLoggerV2
31

32
// InfoDepth logs to the INFO log at the specified depth.
33
func InfoDepth(depth int, args ...interface{}) {
34
	if DepthLogger != nil {
35
		DepthLogger.InfoDepth(depth, args...)
36
	} else {
37
		Logger.Infoln(args...)
38
	}
39
}
40

41
// WarningDepth logs to the WARNING log at the specified depth.
42
func WarningDepth(depth int, args ...interface{}) {
43
	if DepthLogger != nil {
44
		DepthLogger.WarningDepth(depth, args...)
45
	} else {
46
		Logger.Warningln(args...)
47
	}
48
}
49

50
// ErrorDepth logs to the ERROR log at the specified depth.
51
func ErrorDepth(depth int, args ...interface{}) {
52
	if DepthLogger != nil {
53
		DepthLogger.ErrorDepth(depth, args...)
54
	} else {
55
		Logger.Errorln(args...)
56
	}
57
}
58

59
// FatalDepth logs to the FATAL log at the specified depth.
60
func FatalDepth(depth int, args ...interface{}) {
61
	if DepthLogger != nil {
62
		DepthLogger.FatalDepth(depth, args...)
63
	} else {
64
		Logger.Fatalln(args...)
65
	}
66
	os.Exit(1)
67
}
68

69
// LoggerV2 does underlying logging work for grpclog.
70
// This is a copy of the LoggerV2 defined in the external grpclog package. It
71
// is defined here to avoid a circular dependency.
72
type LoggerV2 interface {
73
	// Info logs to INFO log. Arguments are handled in the manner of fmt.Print.
74
	Info(args ...interface{})
75
	// Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println.
76
	Infoln(args ...interface{})
77
	// Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf.
78
	Infof(format string, args ...interface{})
79
	// Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print.
80
	Warning(args ...interface{})
81
	// Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println.
82
	Warningln(args ...interface{})
83
	// Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf.
84
	Warningf(format string, args ...interface{})
85
	// Error logs to ERROR log. Arguments are handled in the manner of fmt.Print.
86
	Error(args ...interface{})
87
	// Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println.
88
	Errorln(args ...interface{})
89
	// Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.
90
	Errorf(format string, args ...interface{})
91
	// Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print.
92
	// gRPC ensures that all Fatal logs will exit with os.Exit(1).
93
	// Implementations may also call os.Exit() with a non-zero exit code.
94
	Fatal(args ...interface{})
95
	// Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println.
96
	// gRPC ensures that all Fatal logs will exit with os.Exit(1).
97
	// Implementations may also call os.Exit() with a non-zero exit code.
98
	Fatalln(args ...interface{})
99
	// Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf.
100
	// gRPC ensures that all Fatal logs will exit with os.Exit(1).
101
	// Implementations may also call os.Exit() with a non-zero exit code.
102
	Fatalf(format string, args ...interface{})
103
	// V reports whether verbosity level l is at least the requested verbose level.
104
	V(l int) bool
105
}
106

107
// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements
108
// DepthLoggerV2, the below functions will be called with the appropriate stack
109
// depth set for trivial functions the logger may ignore.
110
// This is a copy of the DepthLoggerV2 defined in the external grpclog package.
111
// It is defined here to avoid a circular dependency.
112
//
113
// Experimental
114
//
115
// Notice: This type is EXPERIMENTAL and may be changed or removed in a
116
// later release.
117
type DepthLoggerV2 interface {
118
	// InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Print.
119
	InfoDepth(depth int, args ...interface{})
120
	// WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Print.
121
	WarningDepth(depth int, args ...interface{})
122
	// ErrorDetph logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Print.
123
	ErrorDepth(depth int, args ...interface{})
124
	// FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Print.
125
	FatalDepth(depth int, args ...interface{})
126
}
127

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.