{"library":"robocorp-log","title":"Robocorp Log","description":"Robocorp Log provides automatic trace logging capabilities for Python applications, primarily used within the Robocorp automation ecosystem. It automatically captures function calls, arguments, return values, and exceptions, generating structured log data for debugging and analysis. The current version is 3.1.2. It is part of the broader Robocorp framework, with releases often aligned with other components of the Robocorp ecosystem rather than having a standalone, independent cadence.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install robocorp-log"],"cli":null},"imports":["import robocorp.log","from robocorp.log import setup_auto_logging","from robocorp.log import add_log_output"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom robocorp.log import setup_auto_logging, add_log_output\nfrom pathlib import Path\nimport shutil\n\n# Define a directory for log output\nlog_output_dir = Path(\"temp_robocorp_log_output\")\n\n# Ensure the log directory is clean before starting\nif log_output_dir.exists():\n    shutil.rmtree(log_output_dir)\nlog_output_dir.mkdir(parents=True, exist_ok=True)\n\n# Add the log output target. This is crucial for logs to be written to a file.\nadd_log_output(log_output_dir)\n\n# Manually set up auto-logging.\n# In a Robocorp-managed run (e.g., Robocorp Lab/Assistant), this is often automatic.\nsetup_auto_logging()\n\ndef process_data(value: str, count: int):\n    \"\"\"A sample function to demonstrate automatic logging.\"\"\"\n    print(f\"Processing value: {value} for {count} times\")\n    intermediate_result = f\"Transformed_{value}\"\n    final_result = f\"{intermediate_result}_{count}\"\n    if count > 1:\n        print(\"Simulating a loop...\")\n        for i in range(count):\n            print(f\"  Iteration {i+1}\")\n    return final_result\n\nif __name__ == \"__main__\":\n    # Use environment variable for example input, common in automation\n    input_value = os.environ.get('ROBOCORP_LOG_TEST_VALUE', 'sample_item')\n    input_count = int(os.environ.get('ROBOCORP_LOG_TEST_COUNT', '1'))\n    \n    print(f\"Starting demonstration with value='{input_value}', count={input_count}\")\n    result = process_data(input_value, input_count)\n    print(f\"Demonstration finished. Result: {result}\")\n    print(f\"\\nLogs (e.g., .robocorp_log, .html) can be found in: {log_output_dir.absolute()}\")\n    print(\"To view structured logs, use Robocorp Lab or a compatible viewer.\")\n","lang":"python","description":"This quickstart demonstrates how to manually set up `robocorp-log` to capture execution traces of Python functions. It configures a temporary directory for log output and explicitly calls `setup_auto_logging()` to enable the automatic instrumentation. Run this script, then inspect the generated files (e.g., `.robocorp_log`, `log.html`) in the `temp_robocorp_log_output` directory.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"3.0.1","pypi_latest":"3.1.2","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.8,"avg_import_s":0.09,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":3.4,"disk_size":"21.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2,"import_time_s":0.05,"mem_mb":3.4,"disk_size":"22M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.13,"mem_mb":3.7,"disk_size":"23.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.11,"mem_mb":3.7,"disk_size":"24M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.11,"mem_mb":3.6,"disk_size":"14.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.11,"mem_mb":3.6,"disk_size":"15M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.1,"mem_mb":3.9,"disk_size":"14.5M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.6,"import_time_s":0.09,"mem_mb":3.8,"disk_size":"15M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":3.3,"disk_size":"20.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"robocorp-log","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.2,"import_time_s":0.05,"mem_mb":3.3,"disk_size":"21M"}]}}