Skip to content

Commit ef6ad9a

Browse files
add log_utils
1 parent 5af30d0 commit ef6ad9a

File tree

1 file changed

+76
-0
lines changed
  • opentelemetry-instrumentation/src/opentelemetry/instrumentation

1 file changed

+76
-0
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Copyright The OpenTelemetry 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+
# http://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+
from opentelemetry._logs import SeverityNumber
16+
17+
_STD_TO_OTEL = {
18+
10: SeverityNumber.DEBUG,
19+
11: SeverityNumber.DEBUG2,
20+
12: SeverityNumber.DEBUG3,
21+
13: SeverityNumber.DEBUG4,
22+
14: SeverityNumber.DEBUG4,
23+
15: SeverityNumber.DEBUG4,
24+
16: SeverityNumber.DEBUG4,
25+
17: SeverityNumber.DEBUG4,
26+
18: SeverityNumber.DEBUG4,
27+
19: SeverityNumber.DEBUG4,
28+
20: SeverityNumber.INFO,
29+
21: SeverityNumber.INFO2,
30+
22: SeverityNumber.INFO3,
31+
23: SeverityNumber.INFO4,
32+
24: SeverityNumber.INFO4,
33+
25: SeverityNumber.INFO4,
34+
26: SeverityNumber.INFO4,
35+
27: SeverityNumber.INFO4,
36+
28: SeverityNumber.INFO4,
37+
29: SeverityNumber.INFO4,
38+
30: SeverityNumber.WARN,
39+
31: SeverityNumber.WARN2,
40+
32: SeverityNumber.WARN3,
41+
33: SeverityNumber.WARN4,
42+
34: SeverityNumber.WARN4,
43+
35: SeverityNumber.WARN4,
44+
36: SeverityNumber.WARN4,
45+
37: SeverityNumber.WARN4,
46+
38: SeverityNumber.WARN4,
47+
39: SeverityNumber.WARN4,
48+
40: SeverityNumber.ERROR,
49+
41: SeverityNumber.ERROR2,
50+
42: SeverityNumber.ERROR3,
51+
43: SeverityNumber.ERROR4,
52+
44: SeverityNumber.ERROR4,
53+
45: SeverityNumber.ERROR4,
54+
46: SeverityNumber.ERROR4,
55+
47: SeverityNumber.ERROR4,
56+
48: SeverityNumber.ERROR4,
57+
49: SeverityNumber.ERROR4,
58+
50: SeverityNumber.FATAL,
59+
51: SeverityNumber.FATAL2,
60+
52: SeverityNumber.FATAL3,
61+
53: SeverityNumber.FATAL4,
62+
}
63+
64+
65+
def std_to_otel(levelno: int) -> SeverityNumber:
66+
"""
67+
Map a Python log level number as defined in
68+
https://docs.python.org/3/library/logging.html#logging-levels
69+
to an OTel log severity number as defined in
70+
https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber
71+
"""
72+
if levelno < 10:
73+
return SeverityNumber.UNSPECIFIED
74+
if levelno > 53:
75+
return SeverityNumber.FATAL4
76+
return _STD_TO_OTEL[levelno]

0 commit comments

Comments
 (0)