For cloud deployments, SpatialOS outputs all logs to a web-based logging interface available from each deployment’s overview page:
This interface provides an easy way to explore logs:
To filter by time, select part of the timeline:
Or click on the start or end date to open a more detailed time period picker:
Drag a section of the timeline to filter by time, and use the sidebar to filter by:
- Message contents
- Log level:
Each log can then be expanded and its contents copied.
Finally, note the nifty Gmail-like keyboard shortcuts!
Logs are retained for 9 days and then deleted.
User logs from cloud deployments are subject to usage limits. The usage limit for all templates is 6000 messages per minute.
If you reach the usage limit, you’ll see the log message
LOGGING RATE LIMITED - DROPPING LOGS. When the usage limit is reset, you’ll see the log message
LOGGING NO LONGER RATE LIMITED.
Runtime log messages do not contribute to your usage limit.
Local deployments and the SpatialOS CLI
You can find the output of the SpatialOS CLI in the following places:
- your terminal’s standard output
- log files inside
$projectDirectory/logswhen you run the SpatialOS CLI from inside a project directory
For more detailed information on SpatialOS CLI logging, see the SpatialOS CLI introduction page.
Logs for the Launcher can be found at:
- Windows -
- Mac -
The logs have entries of levels Info, Warning, and Error. Roughly, these mean:
These always indicate something going wrong. A single log entry of this type should be grounds for concern and should be investigated and resolved.
These indicate that, possibly temporarily, the application was in an unexpected state. However, the application is intended to recover from these states autonomously. As such, warnings are only cause for concern if they are sustained over time, or if they occur together with errors.
These don’t indicate that anything is going wrong and shouldn’t be cause for concern. By default, these aren’t shown when running locally. You can turn the log level up or down by passing
-DFABRIC_LOG_LEVEL=<level>as a JVM argument when running locally, where
<level>is one of