Server Logs
TitleCardMaker keeps all log files for the system in the config/logs
directory - however, you can also access, view and filter these files within
the UI by clicking the small green
server button
in the top right of the UI. It is also accessible at the /logs
URL.
This page will display an interactive table of all recent log messages, all your current log files, and a summary of any recent "Internal Server Errors."
Purpose of Logs
The purpose of this page is to provide you with a quick way to view and filter logs, it is not a replacement for the actual log files. If you are debugging a problem, it is often better to just view the raw log files.
Log Messages
Filters
There are a variety of filter options available to narrow down which log messages are displayed. All filters are optional.
After editing any filters, you will need to refresh the log table by clicking
.Message
You can enter any text in the Message Contains input text box to filter out logs which do not contain that text. This is case-insensitive.
You may filter messages with "or" logic by entering pipe-separated (|
) text.
For example, Breaking Bad|Better Call Saul
will filter messages which contain
either "Breaking Bad" or "Better Call Saul".
Context IDs
TCM applies a "context ID" to most operations performed via the UI and
internally. This ID is a pseudo-random hexstring like 0f5ce2
and is intended
to make filtering out irrelevant logs easier by looking at the messages for one
specific operation.
You may enter any number of comma-separated context IDs into the Context IDs text box to filter messages associated with those contexts.
Table Interaction
To easily add a given ID as a filter, simply click on the ID in the log table. This will add the ID to your current filters.
Some messages do not have an ID.
Date Range
Logs can also be filtered between a start and end time. All log messages outside this range will be excluded. Clicking either the Start Date or End Date inputs will open a calendar selector in which you can narrow down your time range.
The calendar selectors are just aids, and times can be manually entered if desired.
Table Interaction
To easily add a date as the start or end of a date range filter, you can click the Timestamp cell in the log table. This will add the selected date as the current start time, or end time (if start time is populated).
Log Level
This is often the most critical filter. All log messages are categorized in a
level of either Trace
, Debug
, Info
, Warning
, Error
, or Critical
.
Setting the filter at a specific level will not display messages of lower
priority than that level.
Table Interaction
Clicking a Level cell in the log table will set that log level as the current filter level.
Dynamic Links
In addition to the filter interactions described above, TCM will also
dynamically parse the log messages themselves to create links to the relevent
content. For example, a message containing Series[1]
would dynamically become
a link to the page for the Series with an ID of 1. These links can be clicked to
navigate to the relevant page.
API Logs
If you are troubleshooting a specific issue, it can be useful to find the start and end of the operation. TCM will log the start of all API requests with a message like:
and will end it with a message like:
The specific API endpoint and time will obviously vary depending on your situation, but typically finding the start and then filtering by that operation's Context ID is a good place to begin.
Log Files
Below the table of log messages will be a table of all log files created by TCM. By default, TCM keeps log files for up to 7 days - however, this can be adjusted with an environment variable.
You can click the Download cell to download the associated log file.
TCM will cycle log files every 24 hours or 24.9 MB so they can be shared on Discord without Nitro.
Internal Server Errors
When an unexpected error occurs within TCM, this usually indicates a bug. To make creating bug reports easier, TCM will list all past internal server errors on the Logs page.
Clicking the GitHub icon will open a new tab on the TCM GitHub
page with an issue form pre-filled with some of the applicable information. It
will also download a .zip
file of the relevant logs, for including in the
issue.