Skip to content

Commit 4b775de

Browse files
authored
Prevent side effects when importing logfire (#835)
1 parent 55b1674 commit 4b775de

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

logfire/_internal/cli.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,7 @@
3434
BASE_OTEL_INTEGRATION_URL = 'https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/'
3535
BASE_DOCS_URL = 'https://logfire.pydantic.dev/docs'
3636
INTEGRATIONS_DOCS_URL = f'{BASE_DOCS_URL}/integrations/'
37-
38-
HOME_LOGFIRE.mkdir(exist_ok=True)
39-
4037
LOGFIRE_LOG_FILE = HOME_LOGFIRE / 'log.txt'
41-
file_handler = logging.FileHandler(LOGFIRE_LOG_FILE)
42-
file_handler.setLevel(logging.DEBUG)
43-
logging.basicConfig(handlers=[file_handler], level=logging.DEBUG)
4438

4539
logger = logging.getLogger(__name__)
4640
__all__ = 'main', 'logfire_info'
@@ -474,8 +468,16 @@ def log_trace_id(response: requests.Response, context: ContextCarrier, *args: An
474468

475469
def main(args: list[str] | None = None) -> None:
476470
"""Run the CLI."""
471+
HOME_LOGFIRE.mkdir(exist_ok=True)
472+
473+
file_handler = logging.FileHandler(LOGFIRE_LOG_FILE)
474+
file_handler.setLevel(logging.DEBUG)
475+
logging.basicConfig(handlers=[file_handler], level=logging.DEBUG)
476+
477477
try:
478478
_main(args)
479479
except KeyboardInterrupt:
480480
sys.stderr.write('User cancelled.\n')
481481
sys.exit(1)
482+
finally:
483+
file_handler.close()

0 commit comments

Comments
 (0)