grpc
third_party
bloaty
third_party
abseil-cpp
absl
base
bloaty/third_party/abseil-cpp/absl/base/log_severity.h
Go to the documentation of this file.
1
// Copyright 2017 The Abseil Authors.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#ifndef ABSL_BASE_LOG_SEVERITY_H_
16
#define ABSL_BASE_LOG_SEVERITY_H_
17
18
#include <array>
19
#include <ostream>
20
21
#include "absl/base/attributes.h"
22
#include "absl/base/config.h"
23
24
namespace
absl
{
25
ABSL_NAMESPACE_BEGIN
26
27
// absl::LogSeverity
28
//
29
// Four severity levels are defined. Logging APIs should terminate the program
30
// when a message is logged at severity `kFatal`; the other levels have no
31
// special semantics.
32
//
33
// Values other than the four defined levels (e.g. produced by `static_cast`)
34
// are valid, but their semantics when passed to a function, macro, or flag
35
// depend on the function, macro, or flag. The usual behavior is to normalize
36
// such values to a defined severity level, however in some cases values other
37
// than the defined levels are useful for comparison.
38
//
39
// Example:
40
//
41
// // Effectively disables all logging:
42
// SetMinLogLevel(static_cast<absl::LogSeverity>(100));
43
//
44
// Abseil flags may be defined with type `LogSeverity`. Dependency layering
45
// constraints require that the `AbslParseFlag()` overload be declared and
46
// defined in the flags library itself rather than here. The `AbslUnparseFlag()`
47
// overload is defined there as well for consistency.
48
//
49
// absl::LogSeverity Flag String Representation
50
//
51
// An `absl::LogSeverity` has a string representation used for parsing
52
// command-line flags based on the enumerator name (e.g. `kFatal`) or
53
// its unprefixed name (without the `k`) in any case-insensitive form. (E.g.
54
// "FATAL", "fatal" or "Fatal" are all valid.) Unparsing such flags produces an
55
// unprefixed string representation in all caps (e.g. "FATAL") or an integer.
56
//
57
// Additionally, the parser accepts arbitrary integers (as if the type were
58
// `int`).
59
//
60
// Examples:
61
//
62
// --my_log_level=kInfo
63
// --my_log_level=INFO
64
// --my_log_level=info
65
// --my_log_level=0
66
//
67
// Unparsing a flag produces the same result as `absl::LogSeverityName()` for
68
// the standard levels and a base-ten integer otherwise.
69
enum class
LogSeverity
:
int
{
70
kInfo
= 0,
71
kWarning
= 1,
72
kError
= 2,
73
kFatal
= 3,
74
};
75
76
// LogSeverities()
77
//
78
// Returns an iterable of all standard `absl::LogSeverity` values, ordered from
79
// least to most severe.
80
constexpr std::array<absl::LogSeverity, 4>
LogSeverities
() {
81
return
{{
absl::LogSeverity::kInfo
,
absl::LogSeverity::kWarning
,
82
absl::LogSeverity::kError
,
absl::LogSeverity::kFatal
}};
83
}
84
85
// LogSeverityName()
86
//
87
// Returns the all-caps string representation (e.g. "INFO") of the specified
88
// severity level if it is one of the standard levels and "UNKNOWN" otherwise.
89
constexpr
const
char
*
LogSeverityName
(
absl::LogSeverity
s) {
90
return
s
==
absl::LogSeverity::kInfo
91
?
"INFO"
92
:
s
==
absl::LogSeverity::kWarning
93
?
"WARNING"
94
:
s
==
absl::LogSeverity::kError
95
?
"ERROR"
96
:
s
==
absl::LogSeverity::kFatal
?
"FATAL"
:
"UNKNOWN"
;
97
}
98
99
// NormalizeLogSeverity()
100
//
101
// Values less than `kInfo` normalize to `kInfo`; values greater than `kFatal`
102
// normalize to `kError` (**NOT** `kFatal`).
103
constexpr
absl::LogSeverity
NormalizeLogSeverity
(
absl::LogSeverity
s) {
104
return
s
<
absl::LogSeverity::kInfo
105
?
absl::LogSeverity::kInfo
106
:
s
>
absl::LogSeverity::kFatal
?
absl::LogSeverity::kError
:
s
;
107
}
108
constexpr
absl::LogSeverity
NormalizeLogSeverity
(
int
s) {
109
return
absl::NormalizeLogSeverity
(
static_cast<
absl::LogSeverity
>
(s));
110
}
111
112
// operator<<
113
//
114
// The exact representation of a streamed `absl::LogSeverity` is deliberately
115
// unspecified; do not rely on it.
116
std::ostream&
operator<<
(std::ostream& os,
absl::LogSeverity
s);
117
118
ABSL_NAMESPACE_END
119
}
// namespace absl
120
121
#endif // ABSL_BASE_LOG_SEVERITY_H_
absl::operator<<
ABSL_NAMESPACE_BEGIN std::ostream & operator<<(std::ostream &os, absl::LogSeverity s)
Definition:
abseil-cpp/absl/base/log_severity.cc:24
absl::FormatConversionChar::s
@ s
absl::LogSeverityName
constexpr const char * LogSeverityName(absl::LogSeverity s)
Definition:
abseil-cpp/absl/base/log_severity.h:89
ABSL_NAMESPACE_END
#define ABSL_NAMESPACE_END
Definition:
third_party/abseil-cpp/absl/base/config.h:171
absl::LogSeverity::kFatal
@ kFatal
absl::LogSeverity
LogSeverity
Definition:
abseil-cpp/absl/base/log_severity.h:69
ABSL_NAMESPACE_BEGIN
#define ABSL_NAMESPACE_BEGIN
Definition:
third_party/abseil-cpp/absl/base/config.h:170
xds_interop_client.int
int
Definition:
xds_interop_client.py:113
absl::LogSeverity::kError
@ kError
absl::NormalizeLogSeverity
constexpr absl::LogSeverity NormalizeLogSeverity(absl::LogSeverity s)
Definition:
abseil-cpp/absl/base/log_severity.h:103
absl::LogSeverities
constexpr std::array< absl::LogSeverity, 4 > LogSeverities()
Definition:
abseil-cpp/absl/base/log_severity.h:80
absl::LogSeverity::kWarning
@ kWarning
absl
Definition:
abseil-cpp/absl/algorithm/algorithm.h:31
absl::LogSeverity::kInfo
@ kInfo
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:16