|
35 | 35 | SeverityNumber, |
36 | 36 | get_logger, |
37 | 37 | get_logger_provider, |
38 | | - std_to_otel, |
39 | 38 | ) |
40 | 39 | from opentelemetry.attributes import _VALID_ANY_VALUE_TYPES, BoundedAttributes |
41 | 40 | from opentelemetry.context import get_current |
@@ -358,7 +357,7 @@ class LogRecordProcessor(abc.ABC): |
358 | 357 | """ |
359 | 358 |
|
360 | 359 | @abc.abstractmethod |
361 | | - def emit(self, log_data: LogData): |
| 360 | + def on_emit(self, log_data: LogData): |
362 | 361 | """Emits the `LogData`""" |
363 | 362 |
|
364 | 363 | @abc.abstractmethod |
@@ -402,9 +401,9 @@ def add_log_record_processor( |
402 | 401 | with self._lock: |
403 | 402 | self._log_record_processors += (log_record_processor,) |
404 | 403 |
|
405 | | - def emit(self, log_data: LogData) -> None: |
| 404 | + def on_emit(self, log_data: LogData) -> None: |
406 | 405 | for lp in self._log_record_processors: |
407 | | - lp.emit(log_data) |
| 406 | + lp.on_emit(log_data) |
408 | 407 |
|
409 | 408 | def shutdown(self) -> None: |
410 | 409 | """Shutdown the log processors one by one""" |
@@ -476,8 +475,8 @@ def _submit_and_wait( |
476 | 475 | for future in futures: |
477 | 476 | future.result() |
478 | 477 |
|
479 | | - def emit(self, log_data: LogData): |
480 | | - self._submit_and_wait(lambda lp: lp.emit, log_data) |
| 478 | + def on_emit(self, log_data: LogData): |
| 479 | + self._submit_and_wait(lambda lp: lp.on_emit, log_data) |
481 | 480 |
|
482 | 481 | def shutdown(self): |
483 | 482 | self._submit_and_wait(lambda lp: lp.shutdown) |
@@ -684,7 +683,7 @@ def emit(self, record: LogRecord): |
684 | 683 | and instrumentation info. |
685 | 684 | """ |
686 | 685 | log_data = LogData(record, self._instrumentation_scope) |
687 | | - self._multi_log_record_processor.emit(log_data) |
| 686 | + self._multi_log_record_processor.on_emit(log_data) |
688 | 687 |
|
689 | 688 |
|
690 | 689 | class LoggerProvider(APILoggerProvider): |
@@ -797,3 +796,63 @@ def force_flush(self, timeout_millis: int = 30000) -> bool: |
797 | 796 | False otherwise. |
798 | 797 | """ |
799 | 798 | return self._multi_log_record_processor.force_flush(timeout_millis) |
| 799 | + |
| 800 | + |
| 801 | +_STD_TO_OTEL = { |
| 802 | + 10: SeverityNumber.DEBUG, |
| 803 | + 11: SeverityNumber.DEBUG2, |
| 804 | + 12: SeverityNumber.DEBUG3, |
| 805 | + 13: SeverityNumber.DEBUG4, |
| 806 | + 14: SeverityNumber.DEBUG4, |
| 807 | + 15: SeverityNumber.DEBUG4, |
| 808 | + 16: SeverityNumber.DEBUG4, |
| 809 | + 17: SeverityNumber.DEBUG4, |
| 810 | + 18: SeverityNumber.DEBUG4, |
| 811 | + 19: SeverityNumber.DEBUG4, |
| 812 | + 20: SeverityNumber.INFO, |
| 813 | + 21: SeverityNumber.INFO2, |
| 814 | + 22: SeverityNumber.INFO3, |
| 815 | + 23: SeverityNumber.INFO4, |
| 816 | + 24: SeverityNumber.INFO4, |
| 817 | + 25: SeverityNumber.INFO4, |
| 818 | + 26: SeverityNumber.INFO4, |
| 819 | + 27: SeverityNumber.INFO4, |
| 820 | + 28: SeverityNumber.INFO4, |
| 821 | + 29: SeverityNumber.INFO4, |
| 822 | + 30: SeverityNumber.WARN, |
| 823 | + 31: SeverityNumber.WARN2, |
| 824 | + 32: SeverityNumber.WARN3, |
| 825 | + 33: SeverityNumber.WARN4, |
| 826 | + 34: SeverityNumber.WARN4, |
| 827 | + 35: SeverityNumber.WARN4, |
| 828 | + 36: SeverityNumber.WARN4, |
| 829 | + 37: SeverityNumber.WARN4, |
| 830 | + 38: SeverityNumber.WARN4, |
| 831 | + 39: SeverityNumber.WARN4, |
| 832 | + 40: SeverityNumber.ERROR, |
| 833 | + 41: SeverityNumber.ERROR2, |
| 834 | + 42: SeverityNumber.ERROR3, |
| 835 | + 43: SeverityNumber.ERROR4, |
| 836 | + 44: SeverityNumber.ERROR4, |
| 837 | + 45: SeverityNumber.ERROR4, |
| 838 | + 46: SeverityNumber.ERROR4, |
| 839 | + 47: SeverityNumber.ERROR4, |
| 840 | + 48: SeverityNumber.ERROR4, |
| 841 | + 49: SeverityNumber.ERROR4, |
| 842 | + 50: SeverityNumber.FATAL, |
| 843 | + 51: SeverityNumber.FATAL2, |
| 844 | + 52: SeverityNumber.FATAL3, |
| 845 | + 53: SeverityNumber.FATAL4, |
| 846 | +} |
| 847 | + |
| 848 | + |
| 849 | +def std_to_otel(levelno: int) -> SeverityNumber: |
| 850 | + """ |
| 851 | + Map python log levelno as defined in https://docs.python.org/3/library/logging.html#logging-levels |
| 852 | + to OTel log severity number as defined here: https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-severitynumber |
| 853 | + """ |
| 854 | + if levelno < 10: |
| 855 | + return SeverityNumber.UNSPECIFIED |
| 856 | + if levelno > 53: |
| 857 | + return SeverityNumber.FATAL4 |
| 858 | + return _STD_TO_OTEL[levelno] |
0 commit comments