Logs
Inspect live and saved CrossWatch logs, filter diagnostics, export results, and manage retention.
Inspect live CrossWatch activity, search previous runs, and keep diagnostic logs when you need them for troubleshooting.
The Logs page combines live logging with a persistent log archive.
Use it to:
follow a sync while it is running
open logs from previous sync runs
filter logs by sync pair, level, provider, or text
jump directly to errors and warnings
switch between readable messages and the original log output
copy or download a filtered or complete log
keep important logs beyond normal retention
inspect Watcher and Debug logging when your account has access
Open the page from CrossWatch at /#logs.
Quick start
1. Choose the log channel
Select the type of activity you want to inspect:
Sync, synchronization activity and completed sync runs
Watcher, continuous Watcher activity, available to administrators
Debug, additional diagnostic output, available to administrators when debug logging is enabled
For normal sync troubleshooting, start with Sync.
Log channels
Sync
Sync is the main log channel for synchronization activity.
A saved Sync log can contain one or more sync pairs from the same run. CrossWatch records the pair context with the log lines, which allows the page to show only the selected pair when required.
Use the sync pair selector to choose:
All pairs, activity across the complete run
a specific pair, only log lines associated with that pair
The pair list can also include retained logs for a pair that has since been removed from the active configuration.
Watcher
Watcher shows continuous Watcher logging.
Watcher logs are stored separately from Sync logs and do not use the sync pair selector.
Watcher is available to administrators.
Debug
Debug contains additional diagnostic logging that does not belong to the normal Sync or Watcher views.
The Debug channel is only shown when:
you are using an administrator account
CrossWatch debug logging is enabled
Use Debug when normal Sync or Watcher logging does not contain enough information to diagnose a problem.
Debug logging can produce significantly more output. Enable it only when needed for troubleshooting and disable it afterwards.
Live logs
Select Live to follow current CrossWatch activity.
When a log is active, CrossWatch refreshes the view automatically every two seconds.
The status at the top of the page shows whether the page is:
receiving live updates
waiting for new activity
showing a saved log
temporarily disconnected and retrying
When no new activity is running, the most recent log can remain visible while the page waits for new activity.
Follow live
Follow live keeps the view on the latest matching log lines.
Follow mode is automatically disabled when you perform actions that require a stable position, such as:
changing a filter
moving to another page
jumping through search matches
scrolling away from the latest lines
Click Resume live to return to the newest matching lines.
Saved logs
Select Saved logs to browse retained logs.
Each saved Sync run shows:
sync pair or run name
enabled features
start time
duration
status
error count
warning count
Possible statuses include:
Completed
Completed with issues
Failed
Error
Cancelled
Interrupted
Running
Live
Saved
Feature indicators
For Sync logs, the feature indicators show which synchronization features were enabled in the run:
Watchlist
Ratings
History
Progress
Playlists
Collections
When a run contains multiple pairs, the indicators are combined across those pairs unless you selected one specific pair.
If the required feature information was not recorded with an older log, CrossWatch shows the feature state as unavailable.
Latest run
Select a pair and click Latest run to open the newest retained run for that selection.
This is useful when you know which pair failed but do not want to search the saved log list manually.
Search and filters
Search
Search performs a case insensitive text search across the original stored log text.
Use it for values such as:
movie or show titles
provider names
item IDs
API endpoints
error text
sync event names
pair or feature related messages
Search is applied to the complete selected log, not only the currently visible page.
Use the previous and next match buttons to move through matching lines. CrossWatch can continue to the previous or next log page when needed.
Log level
Filter by:
Errors
Warnings
Info
Debug
The error and warning counters above an opened log can also be clicked. They apply the corresponding level filter immediately.
Provider
Use the Provider field to show log lines associated with a specific provider.
Provider information is derived from the structured log context where available.
You can combine provider, level, and text filters.
Readable view
Readable view formats supported CrossWatch log events into a more compact diagnostic presentation.
Instead of showing only the raw structured message, CrossWatch can display descriptions such as:
Provider health checked
API request
API usage summary
Sync started
Syncing pair
Sync finished
Sync failed
Feature sync started
Feature sync finished
Two way sync started
Sync changes planned
Two way sync finished
Reading provider items
Reading progress
Provider items loaded
Sync overview
HTTP activity summary
Sync state saved
Relevant values can be presented separately, including provider, source, target, feature, status, endpoint, latency, item counts, changes, unresolved items, blocked items, errors, and warnings.
Original log
Readable view does not replace or modify the stored log.
Each formatted entry keeps an Original log section so you can inspect the exact underlying message.
If your search only matches text inside the original message, CrossWatch opens the original log section for that result automatically.
Your Readable view preference is retained in the browser.
Show surrounding context
Each normal log line has a context action.
Use it when one error or warning does not explain what happened by itself.
CrossWatch loads the nearby lines around that entry while keeping the current pair and run scope.
This is especially useful for:
provider errors
item resolution failures
unexpected removals
API failures
warnings that depend on the operation immediately before them
Pagination
Large logs are loaded in pages rather than rendering the complete archive at once.
The current interface shows:
up to 500 log lines per page
10 saved logs per Saved logs page
The footer shows the number of matching lines and the current page.
Filters are applied before pagination, so the count represents the filtered result.
Copy and download
Open More for export actions.
Copy filtered log
Copies only lines matching the active:
search text
level filter
provider filter
pair or run scope
Copy full log
Copies the complete selected log within the active pair or run scope, ignoring text, level, and provider filters.
Download filtered log
Downloads the filtered result as a plain text .log file.
Download full log
Downloads the complete selected log as a plain text .log file.
CrossWatch applies log redaction before storing diagnostic lines, but exported logs can still contain operational information such as media titles, provider names, instance names, IDs, endpoints, or other environment details. Review a log before sharing it publicly.
Keep this log
Saved logs normally follow CrossWatch retention and storage cleanup rules.
Click Keep this log to pin a log.
A pinned log is protected from:
normal age based cleanup
automatic deletion to free archive capacity
Clear older logs
Click Unpin log when the log no longer needs to be retained.
Delete a log
A completed saved log can be deleted manually.
Deleting a Sync log removes the complete saved log, including data for any other pairs stored in the same run.
An active log cannot be deleted while it is still being written.
Clear older logs
From the Saved logs overview, administrators can use Clear older logs to delete completed, unpinned logs in the current channel that are visible to the current profile.
Pinned logs are preserved.
The action is not shown while the Sync page is restricted to one specific pair.
Log retention and storage
CrossWatch stores the diagnostic archive on the server.
The current defaults are:
7 days retention
100 MB maximum archive size
The Logs page shows current storage usage and the configured retention period.
Automatic cleanup
Completed logs that are not pinned are removed when they are older than the retention period.
Storage capacity is also enforced independently from age based retention.
If the archive needs more space, CrossWatch removes the oldest completed, unpinned logs until enough capacity is available.
Pinned logs are not removed automatically.
Storage limit reached
If CrossWatch cannot make enough room because the remaining logs are active or pinned, new lines might not be saved.
The affected log is marked as truncated and the Logs page shows a warning that some lines were not stored.
Delete or unpin older logs to make space.
Logs and Events
Logs and Events serve different purposes.
Use Events when you want a summarized view of sync runs, results, counts, and problems.
Use Logs when you need the detailed execution trail behind a run or want to follow current activity.
For most troubleshooting:
Find the affected run in Events.
Open or locate its log.
Filter to the affected pair or provider.
Check Errors and Warnings.
Use context around the relevant line.
Export the log if you need to share it for support.
Troubleshooting
I do not see any saved logs
Logs are created as new activity is recorded.
If the archive is new, run the relevant sync or wait for the activity you want to inspect.
I cannot see Watcher or Debug
Watcher is restricted to administrators.
Debug is restricted to administrators and only appears when debug logging is enabled.
A profile scoped view only exposes Sync logs that belong to provider instances available to that profile.
Live logs stopped scrolling
Follow mode is probably paused.
Click Resume live.
Changing filters, moving between pages, or scrolling away from the bottom intentionally disables automatic following.
Search finds fewer lines than expected
Check the active level, provider, pair, and run filters.
All active filters are combined.
A saved log says some lines were not saved
The archive reached its storage limit and could not free enough space.
Delete or unpin older logs, then reproduce the issue if you need a complete diagnostic trace.
I need the exact unformatted message
Leave Readable view enabled and expand Original log, or disable Readable view to show the original messages directly.
Persistent log archive
The Logs page uses a persistent SQLite archive rather than only displaying the current browser session.
The archive is stored in logs.db alongside the main CrossWatch local database location.
CrossWatch records diagnostic lines after applying its log redaction function and removing terminal formatting.
Individual stored log messages are bounded in size before they are written to the archive.
Archive sessions
CrossWatch stores logging in sessions.
Sync sessions
A sync run receives its own archive session.
The session retains run metadata and the pair configuration associated with that run. Individual lines also carry pair and run context where available.
This makes it possible to open a complete run and then restrict the view to one pair.
Continuous channels
Watcher and Debug are continuous channels.
They use daily UTC archive sessions and roll over at UTC midnight.
A restarted CrossWatch instance can continue using the current daily session.
Log classification
Stored lines are normalized into the levels used by the UI:
ERROR
WARN
INFO
DEBUG
CrossWatch normalizes equivalent levels before storage. For example, Critical is treated as Error, Warning as Warn, and Success as Info.
Provider context is extracted from log tags or supported structured log events when available.
Structured logging and Readable view
Readable view is presentation logic in the browser.
The archive stores the underlying redacted log text plus metadata such as:
timestamp
level
provider
pair ID
run ID
The browser recognizes supported structured CrossWatch events and converts them into readable summaries and value pills.
The raw stored message remains available under Original log.
This means turning Readable view on or off does not change the archive itself.
Search behavior
Text search is performed server side against the stored log message and is case insensitive.
Level and provider filters use normalized stored metadata.
Search, level, provider, pair, and run filters can be combined before results are paginated.
The normal UI requests up to 500 lines at a time.
Context lookup
The context action performs a separate archive lookup around one line.
The current implementation returns up to five preceding lines, the selected line, and up to five following lines while respecting the current pair and run scope.
Export behavior
Log export is streamed from the archive in bounded chunks rather than loading the complete archive into memory first.
Filtered export applies the current text, level, provider, pair, and run scope.
Full export removes the text, level, and provider filters but still respects the selected pair or run scope.
Retention behavior
The archive currently uses a seven day default retention period and a 100 MB capacity limit.
Cleanup only removes completed sessions that are not pinned.
Two cleanup mechanisms apply:
age based cleanup removes completed, unpinned sessions older than the retention cutoff
capacity cleanup removes the oldest completed, unpinned sessions when additional space is required
If capacity still cannot be created, the active session is marked as truncated and subsequent lines that do not fit are not stored.
Access control
Log visibility follows CrossWatch user and profile access.
Administrator
An administrator without profile impersonation can access:
Sync
Watcher
Debug, when debug logging is enabled
Normal user or profile scoped view
A non administrator or profile scoped view can access Sync logs only.
A Sync session is visible only when the account or selected profile is allowed to access all provider instances referenced by that pair.
This also applies to direct log, context, pin, delete, and download operations through the Logs API.
Logs API
The current archive API is exposed below:
/api/logs/archive
The UI uses it to:
list retained sessions
retrieve filtered log lines
retrieve context around a line
pin or unpin a session
delete a completed session
clear completed, unpinned sessions
stream log exports
Archive access is validated by the backend. Hiding a channel or pair in the browser is not the security boundary.
Route state
The Logs page keeps its current scope in the hash route.
Supported route state includes:
channel
pair ID
run ID
latest run request
return location
This allows other CrossWatch pages to open Logs directly in the relevant diagnostic context.
Related topics
Last updated
Was this helpful?