🤖AI-generated documentation✓ curatedAI Generated
About content generation types
(e.g., docs generated from codebase analysis)
(e.g., livestream → blog post, meeting notes → docs)
(e.g., hand-written tutorial)
Logging
Observability is key!
SkellyCam is a complex multi-process system — each camera runs in its own process, communicating through shared memory and IPC channels. When something goes wrong (or when you just want to understand what's happening under the hood), good logging is essential. Observability is key to understanding the behavior of a system you can't easily step through with a debugger.
Configuration
SkellyCam uses skellylogs for logging, which provides custom log levels and WebSocket log forwarding. The log level is set in skellycam/__init__.py:
LOG_LEVEL = LogLevels.TRACE # Change to LogLevels.INFO for less verbose output
Logs at TRACE level and above are forwarded to connected WebSocket clients for display in the UI's log terminal.
Log files are saved to ~/skellycam_data/logs_info_and_settings/logs/.
UI log viewer
The SkellyCam UI includes a log terminal that mirrors the backend server logs in real time. However, this only works when the server is in a healthy state and the WebSocket connection is active — which is often not the situation when you most need to see the logs.
For maximum observability, set auto-connect to false in the UI settings and run the SkellyCam server in its own terminal window. This way you can see the raw server logs even if the UI can't connect or if the server fails before sending relevant logs to the UI.
Sharing logs
The UI's log terminal includes copy-to-clipboard and save-to-disk buttons. These are helpful when asking for help on the Discord server or when filing GitHub issues. Including your logs makes it MUCH easier for others to diagnose the problem.
See the Community page for more ways to get involved and get help.