@@ -837,34 +837,37 @@ def test_logging_init_custom_log_record_processors(self):
837837 )
838838 @patch ("opentelemetry.sdk._configuration._get_log_level" , return_value = 39 )
839839 def test_logging_init_exporter_level_under (self , log_level_mock ):
840- resource = Resource .create ({})
841- _init_logging (
842- {"otlp" : DummyOTLPLogExporter },
843- resource = resource ,
844- )
845- self .assertEqual (self .set_provider_mock .call_count , 1 )
846- provider = self .set_provider_mock .call_args [0 ][0 ]
847- self .assertIsInstance (provider , DummyLoggerProvider )
848- self .assertIsInstance (provider .resource , Resource )
849- self .assertEqual (
850- provider .resource .attributes .get ("service.name" ),
851- "otlp-service" ,
852- )
853- self .assertEqual (len (provider .processors ), 1 )
854- self .assertIsInstance (provider .processors [0 ], DummyLogRecordProcessor )
855- self .assertIsInstance (
856- provider .processors [0 ].exporter , DummyOTLPLogExporter
857- )
858- getLogger (__name__ ).error ("hello" )
859- self .assertTrue (provider .processors [0 ].exporter .export_called )
860- root_logger = getLogger ()
861- self .assertEqual (root_logger .level , WARNING )
862- handler_present = False
863- for handler in root_logger .handlers :
864- if isinstance (handler , LoggingHandler ):
865- handler_present = True
866- self .assertEqual (handler .level , 39 )
867- self .assertTrue (handler_present )
840+ with ResetGlobalLoggingState ():
841+ resource = Resource .create ({})
842+ _init_logging (
843+ {"otlp" : DummyOTLPLogExporter },
844+ resource = resource ,
845+ )
846+ self .assertEqual (self .set_provider_mock .call_count , 1 )
847+ provider = self .set_provider_mock .call_args [0 ][0 ]
848+ self .assertIsInstance (provider , DummyLoggerProvider )
849+ self .assertIsInstance (provider .resource , Resource )
850+ self .assertEqual (
851+ provider .resource .attributes .get ("service.name" ),
852+ "otlp-service" ,
853+ )
854+ self .assertEqual (len (provider .processors ), 1 )
855+ self .assertIsInstance (
856+ provider .processors [0 ], DummyLogRecordProcessor
857+ )
858+ self .assertIsInstance (
859+ provider .processors [0 ].exporter , DummyOTLPLogExporter
860+ )
861+ getLogger (__name__ ).error ("hello" )
862+ self .assertTrue (provider .processors [0 ].exporter .export_called )
863+ root_logger = getLogger ()
864+ self .assertEqual (root_logger .level , WARNING )
865+ handler_present = False
866+ for handler in root_logger .handlers :
867+ if isinstance (handler , LoggingHandler ):
868+ handler_present = True
869+ self .assertEqual (handler .level , 39 )
870+ self .assertTrue (handler_present )
868871
869872 @patch .dict (
870873 environ ,
@@ -876,33 +879,36 @@ def test_logging_init_exporter_level_under(self, log_level_mock):
876879 )
877880 @patch ("opentelemetry.sdk._configuration._get_log_level" , return_value = 41 )
878881 def test_logging_init_exporter_level_over (self , log_level_mock ):
879- resource = Resource .create ({})
880- _init_logging (
881- {"otlp" : DummyOTLPLogExporter },
882- resource = resource ,
883- )
884- self .assertEqual (self .set_provider_mock .call_count , 1 )
885- provider = self .set_provider_mock .call_args [0 ][0 ]
886- self .assertIsInstance (provider , DummyLoggerProvider )
887- self .assertIsInstance (provider .resource , Resource )
888- self .assertEqual (
889- provider .resource .attributes .get ("service.name" ),
890- "otlp-service" ,
891- )
892- self .assertEqual (len (provider .processors ), 1 )
893- self .assertIsInstance (provider .processors [0 ], DummyLogRecordProcessor )
894- self .assertIsInstance (
895- provider .processors [0 ].exporter , DummyOTLPLogExporter
896- )
897- getLogger (__name__ ).error ("hello" )
898- self .assertFalse (provider .processors [0 ].exporter .export_called )
899- root_logger = getLogger ()
900- handler_present = False
901- for handler in root_logger .handlers :
902- if isinstance (handler , LoggingHandler ):
903- handler_present = True
904- self .assertEqual (handler .level , 41 )
905- self .assertTrue (handler_present )
882+ with ResetGlobalLoggingState ():
883+ resource = Resource .create ({})
884+ _init_logging (
885+ {"otlp" : DummyOTLPLogExporter },
886+ resource = resource ,
887+ )
888+ self .assertEqual (self .set_provider_mock .call_count , 1 )
889+ provider = self .set_provider_mock .call_args [0 ][0 ]
890+ self .assertIsInstance (provider , DummyLoggerProvider )
891+ self .assertIsInstance (provider .resource , Resource )
892+ self .assertEqual (
893+ provider .resource .attributes .get ("service.name" ),
894+ "otlp-service" ,
895+ )
896+ self .assertEqual (len (provider .processors ), 1 )
897+ self .assertIsInstance (
898+ provider .processors [0 ], DummyLogRecordProcessor
899+ )
900+ self .assertIsInstance (
901+ provider .processors [0 ].exporter , DummyOTLPLogExporter
902+ )
903+ getLogger (__name__ ).error ("hello" )
904+ self .assertFalse (provider .processors [0 ].exporter .export_called )
905+ root_logger = getLogger ()
906+ handler_present = False
907+ for handler in root_logger .handlers :
908+ if isinstance (handler , LoggingHandler ):
909+ handler_present = True
910+ self .assertEqual (handler .level , 41 )
911+ self .assertTrue (handler_present )
906912
907913 @patch .dict (
908914 environ ,
@@ -912,34 +918,37 @@ def test_logging_init_exporter_level_over(self, log_level_mock):
912918 },
913919 )
914920 def test_logging_init_exporter_format (self ):
915- resource = Resource .create ({})
916- _init_logging (
917- {"otlp" : DummyOTLPLogExporter },
918- resource = resource ,
919- )
920- self .assertEqual (self .set_provider_mock .call_count , 1 )
921- provider = self .set_provider_mock .call_args [0 ][0 ]
922- self .assertIsInstance (provider , DummyLoggerProvider )
923- self .assertIsInstance (provider .resource , Resource )
924- self .assertEqual (
925- provider .resource .attributes .get ("service.name" ),
926- "otlp-service" ,
927- )
928- self .assertEqual (len (provider .processors ), 1 )
929- self .assertIsInstance (provider .processors [0 ], DummyLogRecordProcessor )
930- self .assertIsInstance (
931- provider .processors [0 ].exporter , DummyOTLPLogExporter
932- )
933- getLogger (__name__ ).error ("hello" )
934- self .assertTrue (provider .processors [0 ].exporter .export_called )
935- root_logger = getLogger ()
936- self .assertEqual (root_logger .level , WARNING )
937- handler_present = False
938- for handler in root_logger .handlers :
939- if isinstance (handler , LoggingHandler ):
940- self .assertEqual (handler .formatter ._fmt , CUSTOM_LOG_FORMAT )
941- handler_present = True
942- self .assertTrue (handler_present )
921+ with ResetGlobalLoggingState ():
922+ resource = Resource .create ({})
923+ _init_logging (
924+ {"otlp" : DummyOTLPLogExporter },
925+ resource = resource ,
926+ )
927+ self .assertEqual (self .set_provider_mock .call_count , 1 )
928+ provider = self .set_provider_mock .call_args [0 ][0 ]
929+ self .assertIsInstance (provider , DummyLoggerProvider )
930+ self .assertIsInstance (provider .resource , Resource )
931+ self .assertEqual (
932+ provider .resource .attributes .get ("service.name" ),
933+ "otlp-service" ,
934+ )
935+ self .assertEqual (len (provider .processors ), 1 )
936+ self .assertIsInstance (
937+ provider .processors [0 ], DummyLogRecordProcessor
938+ )
939+ self .assertIsInstance (
940+ provider .processors [0 ].exporter , DummyOTLPLogExporter
941+ )
942+ getLogger (__name__ ).error ("hello" )
943+ self .assertTrue (provider .processors [0 ].exporter .export_called )
944+ root_logger = getLogger ()
945+ self .assertEqual (root_logger .level , WARNING )
946+ handler_present = False
947+ for handler in root_logger .handlers :
948+ if isinstance (handler , LoggingHandler ):
949+ self .assertEqual (handler .formatter ._fmt , CUSTOM_LOG_FORMAT )
950+ handler_present = True
951+ self .assertTrue (handler_present )
943952
944953 @patch .dict (
945954 environ ,
@@ -971,13 +980,11 @@ def test_logging_init_exporter_without_handler_setup(self):
971980 getLogger (__name__ ).error ("hello" )
972981 self .assertFalse (provider .processors [0 ].exporter .export_called )
973982 root_logger = getLogger ()
974- self .assertEqual (root_logger .level , WARNING )
975983 handler_present = False
976984 for handler in root_logger .handlers :
977985 if isinstance (handler , LoggingHandler ):
978- self .assertEqual (handler .formatter ._fmt , CUSTOM_LOG_FORMAT )
979986 handler_present = True
980- self .assertTrue (handler_present )
987+ self .assertFalse (handler_present )
981988
982989 @patch .dict (environ , {}, clear = True )
983990 def test_otel_log_level_by_name_default (self ):
@@ -1028,6 +1035,7 @@ def test_otel_log_level_by_name_invalid(self):
10281035 @patch .dict (
10291036 environ ,
10301037 {"OTEL_RESOURCE_ATTRIBUTES" : "service.name=otlp-service" },
1038+ clear = True ,
10311039 )
10321040 @patch ("opentelemetry.sdk._configuration._init_tracing" )
10331041 @patch ("opentelemetry.sdk._configuration._init_logging" )
@@ -1049,6 +1057,7 @@ def test_logging_init_disable_default(self, logging_mock, tracing_mock):
10491057 "OTEL_RESOURCE_ATTRIBUTES" : "service.name=otlp-service" ,
10501058 "OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED" : "True" ,
10511059 },
1060+ clear = True ,
10521061 )
10531062 @patch ("opentelemetry.sdk._configuration._init_tracing" )
10541063 @patch ("opentelemetry.sdk._configuration._init_logging" )
@@ -1071,6 +1080,7 @@ def test_logging_init_enable_env(self, logging_mock, tracing_mock):
10711080 "OTEL_RESOURCE_ATTRIBUTES" : "service.name=otlp-service" ,
10721081 "OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED" : "True" ,
10731082 },
1083+ clear = True ,
10741084 )
10751085 @patch ("opentelemetry.sdk._configuration._init_tracing" )
10761086 @patch ("opentelemetry.sdk._configuration._init_logging" )
@@ -1615,16 +1625,19 @@ def __init__(self):
16151625 self .original_file_config = logging .config .fileConfig
16161626 self .root_logger = getLogger ()
16171627 self .original_handlers = None
1628+ self .original_level = None
16181629
16191630 def __enter__ (self ):
16201631 self .original_handlers = self .root_logger .handlers [:]
1632+ self .original_level = self .root_logger .level
16211633 self .root_logger .handlers = []
16221634 return self
16231635
16241636 def __exit__ (self , exc_type , exc_val , exc_tb ):
16251637 self .root_logger .handlers = []
16261638 for handler in self .original_handlers :
16271639 self .root_logger .addHandler (handler )
1640+ self .root_logger .setLevel (self .original_level )
16281641 logging .basicConfig = self .original_basic_config
16291642 logging .config .dictConfig = self .original_dict_config
16301643 logging .config .fileConfig = self .original_file_config
0 commit comments