Skip to content
Closed
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
10 changes: 8 additions & 2 deletions agentops/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,16 @@ def init(self, **kwargs):

self.initialized = True

if self.config.auto_start_session:
# Only start a session if auto_start_session is True and we're not already in start_session
# Prevents infinite recursion
if self.config.auto_start_session and not getattr(self, "_in_start_session", False):
from agentops.legacy import start_session

start_session()
self._in_start_session = True
try:
start_session()
finally:
self._in_start_session = False

def configure(self, **kwargs):
"""Update client configuration"""
Expand Down
13 changes: 10 additions & 3 deletions agentops/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class Config:
)

auto_start_session: bool = field(
default_factory=lambda: get_env_bool("AGENTOPS_AUTO_START_SESSION", False),
default_factory=lambda: get_env_bool("AGENTOPS_AUTO_START_SESSION", True),
metadata={"description": "Whether to automatically start a session when initializing"},
)

Expand All @@ -85,7 +85,7 @@ class Config:
)

log_level: Union[str, int] = field(
default_factory=lambda: os.getenv("AGENTOPS_LOG_LEVEL", "WARNING"),
default_factory=lambda: os.getenv("AGENTOPS_LOG_LEVEL", "INFO"),
metadata={"description": "Logging level for AgentOps logs"},
)

Expand Down Expand Up @@ -170,7 +170,14 @@ def configure(
self.env_data_opt_out = env_data_opt_out

if log_level is not None:
self.log_level = log_level
if isinstance(log_level, str):
log_level_str = log_level.upper()
if hasattr(logging, log_level_str):
self.log_level = getattr(logging, log_level_str)
else:
self.log_level = logging.INFO
else:
self.log_level = log_level

if fail_safe is not None:
self.fail_safe = fail_safe
Expand Down
14 changes: 11 additions & 3 deletions agentops/logging/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,15 @@ def configure_logging(config=None): # Remove type hint temporarily to avoid cir
if log_level_env and hasattr(logging, log_level_env):
log_level = getattr(logging, log_level_env)
else:
log_level = config.log_level if isinstance(config.log_level, int) else logging.CRITICAL
# Handle string log levels from config
if isinstance(config.log_level, str):
log_level_str = config.log_level.upper()
if hasattr(logging, log_level_str):
log_level = getattr(logging, log_level_str)
else:
log_level = logging.INFO
else:
log_level = config.log_level if isinstance(config.log_level, int) else logging.INFO

logger.setLevel(log_level)

Expand All @@ -38,15 +46,15 @@ def configure_logging(config=None): # Remove type hint temporarily to avoid cir

# Configure console logging
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.DEBUG)
stream_handler.setLevel(log_level)
stream_handler.setFormatter(AgentOpsLogFormatter())
logger.addHandler(stream_handler)

# Configure file logging if enabled
log_to_file = os.environ.get("AGENTOPS_LOGGING_TO_FILE", "True").lower() == "true"
if log_to_file:
file_handler = logging.FileHandler("agentops.log", mode="w")
file_handler.setLevel(logging.DEBUG)
file_handler.setLevel(log_level)
formatter = AgentOpsLogFileFormatter("%(asctime)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
Expand Down
Loading