View Categories

Execution logs

1 min read

Every run produces logs you can inspect from the execution detail view. Logs can be stored in files or in the database (configurable in Settings → Task logs type).

  • File backend: logs written under your log directory (see Settings → Local/Upload/Temp directories).
  • DB backend: logs persisted in the application database.
  • ETL logs (Talend): optional, pulled from your ETL logging database when enabled.

Tabs in the execution view

There are four log tabs. The first mixes EAC runtime output and the job’s console. The last three are sourced from your Talend/log4j logging (when ETL logs are enabled).

  1. Execution logs
    Mixed stream of:
    • EAC scheduler/runtime messages (enqueue, script path, PID, status, warnings)
    • Job STDOUT/STDERR (e.g., System.out.println(...), tLogRow, shell output)
      eac execution task logs page new
  2. ETL Logs (Talend log)
    Structured application log lines emitted by your job (log4j). Useful to trace component messages and exceptions.
    eac execution task ETL logs list page new
  3. ETL Statistics
    One row per run with start/end times, status, duration, context, job, etc.
    eac execution task ETL statistics list new
  4. ETL Metrics
    Per-component counters (rows read/written/rejected, etc.).
    eac execution task ETL metrics list page new

The ETL Logs / Statistics / Metrics tabs are populated only if ETL logging is enabled and your ETL studio writes to a database.


Enable ETL logs, statistics, and metrics

  1. Configure your ETL studio (Talend)
    Go to: File → Project Settings → Job parameters → Stats & Logs, and select Database as the target.
  2. Enable ETL logs in EAC (.env.local)
APP_ENABLE_ETL_LOGS=true
  1. Provide the ETL logging DB connection
# Examples
# PostgreSQL
DATABASE_URL_ETL_LOG="postgresql://etl_user:pass@etl-db:5432/etl_logs?serverVersion=16&charset=utf8"
# MySQL/MariaDB
# DATABASE_URL_ETL_LOG="mysql://etl_user:pass@etl-db:3306/etl_logs?charset=utf8mb4"
# SQL Server
# DATABASE_URL_ETL_LOG="mssql://etl_user:pass@etl-db:1433/etl_logs?TrustServerCertificate=true"
# Oracle/sqlite also supported
  1. Declare ETL table names
ETL_STAT_TABLE_NAME=talend_stat
ETL_MET_TABLE_NAME=talend_met
ETL_LOG_TABLE_NAME=talend_log
  1. Correlate the ETL run with the EAC execution
    In your main job, print the root PID once (e.g., in a tJava):
System.out.println("@@eac@@root_pid=" + rootPid);

EAC uses this marker to join your console run with the ETL rows.


What goes where?

  • Execution logs (tab 1):
    • Queueing + path to *_run.sh
    • PID and scheduler messages
    • All console output from your job (stdout/stderr)
    • Final SUCCESS/ERROR/WARNING marker
  • ETL tabs (tabs 2–4):
    • Populated from the ETL logging DB via DATABASE_URL_ETL_LOG
    • Logs = log4j lines; Statistics = per-run aggregates; Metrics = per-component counters

Storage backend for tab 1 is defined by Task logs type (file or db). ETL tabs always read from the ETL logging database.


Best practices

  • Keep console output actionable: prefer concise System.out.println(...)/tLogRow for key checkpoints.
  • Use log levels in Talend (log4j) for noise control.
  • Redact secrets in both console and ETL logs.
  • Retention: set up Purge jobs to keep history lean (see Purges page).