|
| 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