Skip to content

Commit fc78d8e

Browse files
committed
Some change
1 parent c452204 commit fc78d8e

File tree

2 files changed

+72
-55
lines changed

2 files changed

+72
-55
lines changed

opentelemetry-sdk/src/opentelemetry/sdk/_configuration/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ def overwritten_config_fn(*args, **kwargs):
274274
config_fn(*args, **kwargs)
275275
if handler not in root.handlers:
276276
root.addHandler(handler)
277+
277278
return overwritten_config_fn
278279

279280
logging.config.fileConfig = wrapper(logging.config.fileConfig)

opentelemetry-sdk/tests/test_configurator.py

Lines changed: 71 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
from unittest import TestCase, mock
2424
from unittest.mock import Mock, patch
2525

26-
import pytest
2726
from pytest import raises
2827

2928
from opentelemetry import trace
@@ -626,48 +625,50 @@ def tearDown(self):
626625
]
627626

628627
def test_logging_init_empty(self):
629-
auto_resource = Resource.create(
630-
{
631-
"telemetry.auto.version": "auto-version",
632-
}
633-
)
634-
_init_logging({}, resource=auto_resource)
635-
self.assertEqual(self.set_provider_mock.call_count, 1)
636-
provider = self.set_provider_mock.call_args[0][0]
637-
self.assertIsInstance(provider, DummyLoggerProvider)
638-
self.assertIsInstance(provider.resource, Resource)
639-
self.assertEqual(
640-
provider.resource.attributes.get("telemetry.auto.version"),
641-
"auto-version",
642-
)
643-
self.event_logger_provider_mock.assert_called_once_with(
644-
logger_provider=provider
645-
)
646-
self.set_event_logger_provider_mock.assert_called_once_with(
647-
self.event_logger_provider_instance_mock
648-
)
628+
with ResetGlobalLoggingState():
629+
auto_resource = Resource.create(
630+
{
631+
"telemetry.auto.version": "auto-version",
632+
}
633+
)
634+
_init_logging({}, resource=auto_resource)
635+
self.assertEqual(self.set_provider_mock.call_count, 1)
636+
provider = self.set_provider_mock.call_args[0][0]
637+
self.assertIsInstance(provider, DummyLoggerProvider)
638+
self.assertIsInstance(provider.resource, Resource)
639+
self.assertEqual(
640+
provider.resource.attributes.get("telemetry.auto.version"),
641+
"auto-version",
642+
)
643+
self.event_logger_provider_mock.assert_called_once_with(
644+
logger_provider=provider
645+
)
646+
self.set_event_logger_provider_mock.assert_called_once_with(
647+
self.event_logger_provider_instance_mock
648+
)
649649

650650
@patch.dict(
651651
environ,
652652
{"OTEL_RESOURCE_ATTRIBUTES": "service.name=otlp-service"},
653653
)
654654
def test_logging_init_exporter(self):
655-
resource = Resource.create({})
656-
_init_logging({"otlp": DummyOTLPLogExporter}, resource=resource)
657-
self.assertEqual(self.set_provider_mock.call_count, 1)
658-
provider = self.set_provider_mock.call_args[0][0]
659-
self.assertIsInstance(provider, DummyLoggerProvider)
660-
self.assertIsInstance(provider.resource, Resource)
661-
self.assertEqual(
662-
provider.resource.attributes.get("service.name"),
663-
"otlp-service",
664-
)
665-
self.assertIsInstance(provider.processor, DummyLogRecordProcessor)
666-
self.assertIsInstance(
667-
provider.processor.exporter, DummyOTLPLogExporter
668-
)
669-
getLogger(__name__).error("hello")
670-
self.assertTrue(provider.processor.exporter.export_called)
655+
with ResetGlobalLoggingState():
656+
resource = Resource.create({})
657+
_init_logging({"otlp": DummyOTLPLogExporter}, resource=resource)
658+
self.assertEqual(self.set_provider_mock.call_count, 1)
659+
provider = self.set_provider_mock.call_args[0][0]
660+
self.assertIsInstance(provider, DummyLoggerProvider)
661+
self.assertIsInstance(provider.resource, Resource)
662+
self.assertEqual(
663+
provider.resource.attributes.get("service.name"),
664+
"otlp-service",
665+
)
666+
self.assertIsInstance(provider.processor, DummyLogRecordProcessor)
667+
self.assertIsInstance(
668+
provider.processor.exporter, DummyOTLPLogExporter
669+
)
670+
getLogger(__name__).error("hello")
671+
self.assertTrue(provider.processor.exporter.export_called)
671672

672673
@patch.dict(
673674
environ,
@@ -846,7 +847,7 @@ def test_initialize_components_kwargs(
846847
)
847848

848849
def test_basicConfig_works_with_otel_handler(self):
849-
with ClearLoggingHandlers():
850+
with ResetGlobalLoggingState():
850851
_init_logging(
851852
{"otlp": DummyOTLPLogExporter},
852853
Resource.create({}),
@@ -868,7 +869,7 @@ def test_basicConfig_works_with_otel_handler(self):
868869
)
869870

870871
def test_basicConfig_preserves_otel_handler(self):
871-
with ClearLoggingHandlers():
872+
with ResetGlobalLoggingState():
872873
_init_logging(
873874
{"otlp": DummyOTLPLogExporter},
874875
Resource.create({}),
@@ -899,7 +900,7 @@ def test_basicConfig_preserves_otel_handler(self):
899900
)
900901

901902
def test_dictConfig_preserves_otel_handler(self):
902-
with ClearLoggingHandlers():
903+
with ResetGlobalLoggingState():
903904
_init_logging(
904905
{"otlp": DummyOTLPLogExporter},
905906
Resource.create({}),
@@ -916,22 +917,20 @@ def test_dictConfig_preserves_otel_handler(self):
916917
{
917918
"version": 1,
918919
"handlers": {
919-
"default": {
920-
"level": "INFO",
920+
"console": {
921921
"class": "logging.StreamHandler",
922+
"level": "DEBUG",
923+
"formatter": "simple",
922924
"stream": "ext://sys.stdout",
923925
},
924926
},
925927
"loggers": {
926928
"": { # root logger
927-
"handlers": ["default"],
928-
"level": "WARNING",
929-
"propagate": False,
929+
"handlers": ["console"],
930930
},
931931
},
932932
}
933933
)
934-
print(root.handlers)
935934
self.assertEqual(len(root.handlers), 2)
936935

937936
logging_handlers = [
@@ -1180,12 +1179,18 @@ def test_custom_configurator(self, mock_init_comp):
11801179
mock_init_comp.assert_called_once_with(**kwargs)
11811180

11821181

1183-
class ClearLoggingHandlers:
1182+
class ResetGlobalLoggingState:
11841183
def __init__(self):
1184+
self.original_basic_config = logging.basicConfig
1185+
self.original_dict_config = logging.config.dictConfig
1186+
self.original_file_config = logging.config.fileConfig
11851187
self.root_logger = getLogger()
11861188
self.original_handlers = None
11871189

11881190
def __enter__(self):
1191+
print(self.root_logger.handlers)
1192+
print(self.root_logger.filters)
1193+
print(self.root_logger.level)
11891194
self.original_handlers = self.root_logger.handlers[:]
11901195
self.root_logger.handlers = []
11911196
return self
@@ -1194,6 +1199,13 @@ def __exit__(self, exc_type, exc_val, exc_tb):
11941199
self.root_logger.handlers = []
11951200
for handler in self.original_handlers:
11961201
self.root_logger.addHandler(handler)
1202+
logging.basicConfig = self.original_basic_config
1203+
logging.config.dictConfig = self.original_dict_config
1204+
logging.config.fileConfig = self.original_file_config
1205+
root = getLogger()
1206+
print(root.handlers)
1207+
print(root.filters)
1208+
print(root.level)
11971209

11981210

11991211
class TestClearLoggingHandlers(TestCase):
@@ -1205,7 +1217,7 @@ def test_preserves_handlers(self):
12051217
root_logger.addHandler(test_handler)
12061218
expected_handlers = initial_handlers + [test_handler]
12071219

1208-
with ClearLoggingHandlers():
1220+
with ResetGlobalLoggingState():
12091221
self.assertEqual(len(root_logger.handlers), 0)
12101222
temp_handler = logging.StreamHandler()
12111223
root_logger.addHandler(temp_handler)
@@ -1216,10 +1228,14 @@ def test_preserves_handlers(self):
12161228

12171229
root_logger.removeHandler(test_handler)
12181230

1219-
1220-
pytest.main(
1221-
[
1222-
"-x",
1223-
"/usr/local/google/home/dylanrussell/archivist_backup_250529_133018/reinstate/opentelemetry-python/opentelemetry-sdk/tests/test_configurator.py",
1224-
]
1225-
)
1231+
def test_preserves_original_logging_fns(self):
1232+
def f(x):
1233+
print("f")
1234+
1235+
with ResetGlobalLoggingState():
1236+
logging.basicConfig = lambda x: print("lambda")
1237+
logging.config.dictConfig = f
1238+
logging.config.fileConfig = f
1239+
self.assertEqual(logging.config.dictConfig.__name__, "dictConfig")
1240+
self.assertEqual(logging.basicConfig.__name__, "basicConfig")
1241+
self.assertEqual(logging.config.fileConfig.__name__, "fileConfig")

0 commit comments

Comments
 (0)