Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions agentops/logging/instrument_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,26 @@ def upload_logfile(trace_id: int) -> None:
Upload the log content from the memory buffer to the API.
"""
from agentops import get_client
from agentops.logging import logger

# Get the content from the buffer
log_content = _log_buffer.getvalue()
if not log_content:
return

client = get_client()

# Check if authentication is complete before attempting to upload
if not client.api.v4.auth_token:
logger.debug(
"[agentops.upload_logfile] Skipping logfile upload - authentication not yet complete. "
"This is normal for short-running traces that complete before authentication finishes."
)
# Clear the buffer even if we don't upload
_log_buffer.seek(0)
_log_buffer.truncate()
return

client.api.v4.upload_logfile(log_content, trace_id)

# Clear the buffer after upload
Expand Down
40 changes: 40 additions & 0 deletions tests/unit/logging/test_upload_logfile_no_auth.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import builtins
import pytest
from unittest.mock import patch, MagicMock
from agentops.logging.instrument_logging import setup_print_logger, upload_logfile


@pytest.fixture
def reset_print():
"""Fixture to reset the print function after tests"""
original_print = builtins.print
yield
builtins.print = original_print


def test_upload_logfile_skips_when_no_auth_token(reset_print):
"""Test that upload_logfile skips upload gracefully when auth token is not set."""
setup_print_logger()
test_message = "Test upload message"
print(test_message)

mock_client = MagicMock()
mock_client.api.v4.auth_token = None

with patch("agentops.get_client", return_value=mock_client):
upload_logfile(trace_id=123)
mock_client.api.v4.upload_logfile.assert_not_called()


def test_upload_logfile_uploads_when_auth_token_is_set(reset_print):
"""Test that upload_logfile uploads when auth token is set."""
setup_print_logger()
test_message = "Test upload message"
print(test_message)

mock_client = MagicMock()
mock_client.api.v4.auth_token = "test_token"

with patch("agentops.get_client", return_value=mock_client):
upload_logfile(trace_id=123)
mock_client.api.v4.upload_logfile.assert_called_once()
Loading