Skip to content

Commit 5976a81

Browse files
authored
Merge pull request #307 from CasperGN/fix/specify-loglevel
Fix/specify loglevel
2 parents 178f1b0 + a49cf5a commit 5976a81

File tree

5 files changed

+34
-7
lines changed

5 files changed

+34
-7
lines changed

dapr_agents/observability/constants.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
try:
99
from opentelemetry import context as context_api
1010
from opentelemetry import trace as trace_api
11+
from opentelemetry import _logs as logs_api
1112
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
1213
from opentelemetry.trace import Status, StatusCode
1314
from opentelemetry.util.types import AttributeValue
@@ -17,6 +18,7 @@
1718
# OpenTelemetry is not available - instrumentation will be disabled
1819
# To enable observability features, install: pip install dapr-agents[observability]
1920
trace_api = None
21+
logs_api = None
2022
BaseInstrumentor = object
2123
context_api = None
2224
Status = None
@@ -175,6 +177,7 @@ def safe_json_dumps(obj: Any) -> str:
175177
"OPENINFERENCE_AVAILABLE",
176178
# OpenTelemetry core
177179
"trace_api",
180+
"logs_api",
178181
"context_api",
179182
"BaseInstrumentor",
180183
"Status",

dapr_agents/observability/instrumentor.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
WRAPT_AVAILABLE,
5151
BaseInstrumentor,
5252
trace_api,
53+
logs_api,
5354
context_api,
5455
wrap_function_wrapper,
5556
)
@@ -107,6 +108,7 @@ class DaprAgentsInstrumentor(BaseInstrumentor):
107108

108109
# Class-level tracer for global access
109110
_global_tracer = None
111+
_global_logger = None
110112

111113
def __init__(self) -> None:
112114
"""
@@ -116,6 +118,7 @@ def __init__(self) -> None:
116118
"""
117119
super().__init__()
118120
self._tracer = None
121+
self._logger = None
119122

120123
def instrumentation_dependencies(self) -> Collection[str]:
121124
"""
@@ -164,6 +167,9 @@ def _instrument(self, **kwargs: Any) -> None:
164167
logger.warning("wrapt not available - instrumentation disabled")
165168
return
166169

170+
# Initialize logger for the instrumentor
171+
self._initialize_logger(kwargs)
172+
167173
# Initialize OpenTelemetry tracer with provider configuration
168174
self._initialize_tracer(kwargs)
169175

@@ -185,7 +191,20 @@ def _instrument(self, **kwargs: Any) -> None:
185191

186192
logger.info("✅ Dapr Agents OpenTelemetry instrumentation enabled")
187193

188-
def _initialize_tracer(self, kwargs: dict) -> None:
194+
def _initialize_logger(self, kwargs: dict[str, Any]) -> None:
195+
"""
196+
Initialize the logger for the instrumentor.
197+
198+
Sets up the logger to use the module-level logger defined at the top.
199+
"""
200+
logger_provider = kwargs.get("logger_provider")
201+
if not logger_provider:
202+
logger_provider = logs_api.get_logger_provider()
203+
204+
self._logger = logs_api.get_logger(__name__, logger_provider=logger_provider)
205+
DaprAgentsInstrumentor._global_logger = self._logger
206+
207+
def _initialize_tracer(self, kwargs: dict[str, Any]) -> None:
189208
"""
190209
Initialize OpenTelemetry tracer with provider configuration.
191210

dapr_agents/workflow/runners/agent.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -493,7 +493,12 @@ def serve(
493493
"install uvicorn or pass an existing FastAPI app."
494494
) from exc
495495

496-
uvicorn.run(fastapi_app, host=host, port=port)
496+
uvicorn.run(
497+
fastapi_app,
498+
host=host,
499+
port=port,
500+
log_level=logging.getLevelName(logger.getEffectiveLevel()).lower(),
501+
)
497502

498503
return fastapi_app
499504

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies = [
1717
"dapr>=1.16.0rc2",
1818
"dapr-ext-fastapi>=1.16.0rc2",
1919
"dapr-ext-workflow>=1.16.0rc2",
20-
"durabletask-dapr>=0.2.0a7",
20+
"durabletask-dapr>=0.2.0a14",
2121
"pydantic>=2.11.3,<3.0.0",
2222
"jinja2>=3.1.0,<4.0.0",
2323
"pyyaml>=6.0.1,<7.0.0",

uv.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)