# Output logging and error handling

## Overview

When running scripts in the Eliona system, all output, such as `print`-statements, information about execution and errors, in the **Grafana container (SSR)** is logged. Each script execution receives a unique **Function ID**that makes it possible to track the output of individual scripts specifically. This guide explains what such log entries can look like and what they mean.

## Important notes

### Immediate output with `print`-statements

To ensure that `print`-outputs are visible immediately, use the parameter `print`-statements in your **`flush=True`**. This prevents the output from remaining in the buffer and ensures that it appears directly in the log.

**Example:**

```python
print("Result: 42", flush=True)
```

### Error logging

All errors that occur during the execution of a script are also displayed in the Grafana log. With appropriate error handling, you can ensure that additional details are logged, making troubleshooting easier.

**Example of error logging:**

```python
try:
    # Code that could cause an error
except Exception as e:
    print(f"An error occurred: {e}", flush=True)
    raise
```

By using `flush=True` in combination with comprehensive error handling, you can ensure that all important information is immediately visible in the log and that potential problems can be quickly identified and resolved.
