Skip to content

feat: add UIPATH_LOG_TO_FILE env var for file logging without job context#103

Open
smflorentino wants to merge 2 commits intomainfrom
feat/log-to-file-env-var
Open

feat: add UIPATH_LOG_TO_FILE env var for file logging without job context#103
smflorentino wants to merge 2 commits intomainfrom
feat/log-to-file-env-var

Conversation

@smflorentino
Copy link
Copy Markdown

@smflorentino smflorentino commented Mar 26, 2026

Summary

Adds a log_to_file flag to UiPathRuntimeContext and UiPathRuntimeLogsInterceptor that enables file-based logging (__uipath/execution.log) without requiring UIPATH_JOB_KEY.

Setting UIPATH_JOB_KEY triggers multiple behaviors beyond logging: licensing headers on API calls, output.json writes, state file preservation, and span processor registration. This makes it impossible to test file logging locally without side effects, and in fact doesn't work for evals which are (presently) design time only so the assumption that a deployed job is present will not work.

UIPATH_LOG_TO_FILE=true enables only the file logging path — no other behavior changes.

Test plan

  • Verified locally: UIPATH_LOG_TO_FILE=true uv run uipath eval agent.json default.json writes to __uipath/execution.log with correct formatting
  • Existing tests pass (7/7 interceptor tests)
  • Without the env var, behavior is unchanged

Companion PR: UiPath/uipath-python (pending) — updates cli_eval.py to also enable LiveTrackingSpanProcessor when log_to_file is set.

🤖 Generated with Claude Code

Development Package

  • Add this package as a dependency in your pyproject.toml:
[project]
dependencies = [
  # Exact version:
  "uipath-runtime==0.10.0.dev1001030389",

  # Any version from PR
  "uipath-runtime>=0.10.0.dev1001030000,<0.10.0.dev1001040000"
]

[[tool.uv.index]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
publish-url = "https://test.pypi.org/legacy/"
explicit = true

[tool.uv.sources]
uipath-runtime = { index = "testpypi" }

…text

Adds a `log_to_file` flag that enables file-based logging (`__uipath/execution.log`)
without requiring `UIPATH_JOB_KEY` to be set. This allows developers to reproduce
and debug file-logging issues locally without triggering job-related side effects
(licensing headers, output.json writes, state file preservation).

Set `UIPATH_LOG_TO_FILE=true` to enable.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@smflorentino smflorentino requested a review from a team as a code owner March 26, 2026 18:23
smflorentino added a commit to UiPath/uipath-python that referenced this pull request Mar 26, 2026
When `log_to_file` is enabled (via `UIPATH_LOG_TO_FILE=true`), also register
the `LiveTrackingSpanProcessor` for span tracing. This ensures the file logging
repro path matches deployed behavior where span upserts run in background threads
alongside the main execution.

Companion PR: UiPath/uipath-runtime-python#103

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants