> For the complete documentation index, see [llms.txt](https://docs.auterion.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.auterion.com/app-development/app-framework/logging-arbitrary-data-persistently.md).

# How to store an App's Binary Data on Skynode

{% hint style="info" %}
In most cases using ROS topics and `printfs` should fulfill your logging needs. This serves as a reference for rarer and specific logging needs.
{% endhint %}

You can also store application information on the Skynode SD card. This is useful to save any arbitrary data and have it persist beyond the lifecycle of the app. By default, the app container `/data` directory serves as a mount point for that app data directory on Skynode, which is located under Skynode `/data/app/<app-name>/data` directory.

For instance you can create a text file to retrieve later on Skynode by implementing the following in your application:

```cpp
#include <iostream>
#include <fstream>

int main() {
    std::ofstream outputFile("/data/my_file.txt"); 
    if (outputFile.is_open()) {
        outputFile << "Hello, File!\n";
        outputFile.close();
    }
    return 0;
}
```

With the app installed and running, you can SSH into Skynode and retrieve this file at any time:

```bash
root@skynode$ cat /data/app/com.auterion.example-app/data/my_file.txt 
Hello, File!
```

## Mounting Other Volumes

To mount any arbitrary volume to your app, you may specify your custom volume using *docker-compose* properties in your app *auterion-app.yml* as explained in the [Native Docker Compose](/app-development/app-framework/compose-override.md#customizing-the-docker-compose) page.
