Recently I found that I needed to fetch all the logs for a Node.js application running on the Red Hat Mobile Application platform. Fetching logs is easy via our Studio UI, but fetching all files automatically requires some extra effort. Thankfully we have fhc, a command line interface that can be used to interact with your instance of Red Hat Mobile.

You can install fhc by running:

npm install fh-fhc@latest-2

After fhc is installed, use the following to target your domain and login:

fhc target $YOUR_DOMAIN_URL
fhc login

Following this you might want to verify the name of the environment you’re downloading logs from; it won’t always match the UI! The command below will allow you to find the ID for the cloud environment you’d like to download logs from:

fhc admin environments list

Once you’re setup you can use the following to download all logs for a given cloud application or mBaaS Service.

for log in `fhc app logs list --app=$YOUR_APP_ID --env=$ENV --json \
| grep -i "stdout" | sed 's/.*"\(.*\)"[^"]*$/\1/'`; \
do fhc app logs get --logname="$log" --app=$YOUR_APP_ID --env=$ENV --verbose; \
done > output.txt

This will download each stdout log file in series and write them to a file named output.txt. You can change the pattern passed to grep to get stderr logs, or to get files for a specific date.