# Output Logging and Error Handling

## Overview

When executing scripts in the BuildingPro Suites system, all outputs, such as `print` statements, information about the execution, and errors, are logged in the **Grafana container (SSR)**. Each script execution receives a unique **Function ID**, which makes it possible to specifically track the outputs of individual scripts. 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 immediately visible, use the parameter **`flush=True`** in your `print` statements. This prevents the output from staying 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. Through appropriate error handling, you can ensure that additional details are logged, which facilitates troubleshooting.

**Example of error logging:**

```python
try:
    # Code that could cause errors
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 potential problems can be identified and fixed quickly.
