Nova Act provides comprehensive logging and tracing capabilities to help you debug workflows, monitor execution, and analyze agent behavior. Traces are output as self-contained HTML files with screenshots, actions, and timing information.
By default, Nova Act emits all logs at logging.INFO level or above:
from nova_act import NovaActwith NovaAct(starting_page="https://example.com") as nova: # Logs are automatically printed to console nova.act("Search for products")
Console output:
2026-03-04 12:00:00 - nova_act - INFO - Starting browser session2026-03-04 12:00:05 - nova_act - INFO - abc1> Navigating to https://example.com2026-03-04 12:00:10 - nova_act - INFO - abc1> 👀 Taking observation2026-03-04 12:00:12 - nova_act - INFO - abc1> 💭 Thinking...2026-03-04 12:00:15 - nova_act - INFO - abc1> 🎬 Clicking element
# Show all logs (DEBUG level)export NOVA_ACT_LOG_LEVEL=10# Show only warnings and errorsexport NOVA_ACT_LOG_LEVEL=30# Show only errorsexport NOVA_ACT_LOG_LEVEL=40
Or in Python:
import osimport logging# Set before importing nova_actos.environ['NOVA_ACT_LOG_LEVEL'] = str(logging.DEBUG)from nova_act import NovaAct
After each act() call, Nova Act generates an HTML trace file:
from nova_act import NovaActwith NovaAct(starting_page="https://example.com") as nova: result = nova.act("Search for products")# Console output shows trace location:# ** View your act run here: /var/folders/.../act_abc123_output.html
from nova_act import NovaActimport oslogs_dir = "/path/to/logs"os.makedirs(logs_dir, exist_ok=True)with NovaAct( starting_page="https://example.com", logs_directory=logs_dir) as nova: nova.act("Search for products")print(f"Traces saved to: {logs_dir}")
from nova_act import NovaActwith NovaAct( starting_page="https://example.com", logs_directory="/path/to/logs", record_video=True, headless=False, # Record in headed mode shows actual browser) as nova: # All browser activity is recorded nova.act("Step 1") nova.act("Step 2") nova.act("Step 3")# Video includes entire session from start to stop
Nova Act tracks approximate time worked, excluding human wait time:
from nova_act import NovaActwith NovaAct(starting_page="https://example.com") as nova: result = nova.act("Complete task")# Console output:# ⏱️ Approx. Time Worked: 11.8s
With human input:
⏱️ Approx. Time Worked: 28.3s (excluding 4.5s human wait)
Disclaimer: Time worked calculations are approximate and may have inaccuracies due to system timing variations, network latency, or other factors. Use for understanding execution patterns, not formal time tracking.
For AWS deployments, logs automatically go to CloudWatch:
from nova_act import NovaAct, workflow@workflow( workflow_definition_name="my-workflow", model_id="nova-act-latest",)def main(payload): with NovaAct(starting_page="https://example.com") as nova: # Logs automatically sent to CloudWatch nova.act("Process data")