Consider the following items when working with Roku logs.
Print statements from a side-loaded Roku client can be viewed on a BrightScript console that is accessed with:
telnet <roku-device IP> 8085
The Roku debug server on port 8080 offers additional debug commands (for example, fps_display, bitmap usage, and so on). See Roku Developer Documentation.
To add a client log in BrightScript, use a format such as:
logMessage("My test passed")
logMessage("getGeoCheck - request: " + url)
Server logs can be forwarded to the same BrightScript console (telnet session) by adding the following entry into the client manifest
file:
enable_server_logging=true
Logs appear as logString
commands such as:
[2018-03-13 21:01:29.113Z] TCP CLIENT - command queued: {"command":"logString","arguments":{"log":" I/ViperApp: Network Connected."},"sequence":670747791922}
When running a packaged channel (private or public), RokuOS does not emit client logs to the telnet channel.
The client logs can be forwarded to the app server by adding the following entry into the channel manifest:
enable_client_log_forwarding=true
Logs appear in the server’s console output (either the local server or the AWS cloud watch) preceded by: ClientLog
.
You can enable and disable the recording of messages between the server and the client by using a Dev Panel toggle called the Cloud Socket Recorder.
The recorded messages are written to a file named recording<n>.json
that’s in the same folder as the application executable (e.g., build/osx/Debug/recording0.json
).
The “< n >” suffix of the filename is a number that starts at 0 when the app is started, and is incremented each time the recording is enabled while the server is running.
When the recording is first enabled, the recording0.json
file collects the messages until the recording is disabled.
If the recording is re-enabled while the app is running, the recording1.json
file will be created, and so on.