How To Change The Log Level In Ignition
The Timebase Historian Module writes log messages to Ignition's standard gateway log.
Overview
The Timebase Historian Module writes log messages to Ignition's standard gateway log. By default, only INFO, WARNING, and ERROR messages are shown — enough to track normal operation and spot problems. When you need to diagnose a specific issue (authentication failures, query path errors, data gaps), you can increase the verbosity for individual module classes without affecting the rest of your gateway logs.
How to Change the Log Level in Ignition
Log levels are configured per logger in the Ignition Gateway web interface:
- Open the Ignition Gateway web interface.
- Navigate to Config > System > Console.
- Click the Log Levels tab.
- In the Add Logger field, enter the full class name (see the table below).
- Set the desired level from the dropdown: Error, Warn, Info, Debug, or Trace.
- Click Add.
The change takes effect immediately — no restart required. To revert to the default, remove the entry from the list or set it back to Info.
Note: Debug and Trace levels produce a high volume of log output. Enable them only while actively diagnosing an issue, then revert when you are done.
Module Logger Names
All module loggers are in the com.flowsoftware.timebase.historian.gateway package. Enter these exact names in the Log Levels tab:
| Logger name | What it covers |
|---|---|
com.flowsoftware.timebase.historian.gateway.GatewayHook |
Module startup and shutdown lifecycle |
com.flowsoftware.timebase.historian.gateway.TimebaseHistorian |
Historian provider startup, shutdown, Store and Forward bridge wiring |
com.flowsoftware.timebase.historian.gateway.TimebaseRestClient |
All HTTP calls to Timebase — authentication, health checks, write requests |
com.flowsoftware.timebase.historian.gateway.TimebaseStorageEngine |
Tag data writes, metadata sync, write error throttling |
com.flowsoftware.timebase.historian.gateway.TimebaseQueryEngine |
Tag browsing and historical query path resolution |
To increase verbosity for all module classes at once, add the parent package instead:
com.flowsoftware.timebase.historian.gateway
Setting a level on the parent package applies it to all classes within it.
What Each Level Shows
INFO (default)
Normal operational messages. You should see these during healthy operation:
| Class | Example message |
|---|---|
| GatewayHook | Timebase Historian module started |
| TimebaseHistorian | Historian 'Timebase' starting up |
| TimebaseHistorian | Historian 'Timebase' started - gateway name: 'Ignition-FLSN03' |
| TimebaseHistorian | Timebase backend reachable; S&F drain bridge initialized |
| TimebaseRestClient | Timebase backend is reachable |
| TimebaseStorageEngine | Loaded metadata cache for dataset 'Ignition-default': 42 tag(s) |
| TimebaseStorageEngine | Storage writes restored (3 errors were suppressed since last log) |
WARN
Conditions that are recoverable but worth investigating:
| Class | Example message | What it means |
|---|---|---|
| TimebaseHistorian | Timebase backend unreachable at startup; S&F will buffer in memory until backend recovers |
Timebase was down when Ignition started — data is buffering |
| TimebaseRestClient | No bearer token, attempting refresh |
Module is fetching the first OAuth2 token |
| TimebaseRestClient | Token expired, refreshing and retrying |
Normal token refresh; only a concern if it repeats without recovery |
| TimebaseStorageEngine | Failed to upsert 3 tag metadata record(s) to dataset 'Ignition-default'; cache left stale, will retry on next change |
Metadata write failed — values will be retried on the next property change |
| TimebaseQueryEngine | Browse failed: <message> |
Tag tree browse returned an error |
| TimebaseQueryEngine | Could not determine dataset for query path: <path> |
histprov: path could not be parsed — check the path format |
ERROR
Failures that require attention:
| Class | Example message | What it means |
|---|---|---|
| TimebaseRestClient | Failed to call endpoint: /api/..., status: 401, body: ... |
HTTP call failed — check Timebase URL and credentials |
| TimebaseRestClient | Timebase backend is unreachable: <message> |
Health check failed — Timebase may be down |
| TimebaseStorageEngine | Failed to store atomic points: <message> |
Write failed; if throttled: (n similar errors suppressed since last log) |
| TimebaseStorageEngine | Failed to apply source changes (tag retirement/rename) |
Tag lifecycle null write failed |
| TimebaseStorageEngine | Failed to send null batch for dataset: Ignition-default |
Shutdown null write failed |
| TimebaseHistorian | Failed to initialize S&F drain bridge |
Store and Forward wiring failed at startup |
DEBUG
Detailed operational information useful when tracing data flow. Generates moderate log volume.
- TimebaseStorageEngine — logs each write batch: how many tags were split into how many chunks, metadata upsert counts per dataset
- TimebaseQueryEngine — logs each browse call with result counts, query grouping by dataset, API call parameters (dataset, time range, tag list), and API response metrics
Example DEBUG entries:
Split 87 tags into 4 chunks for dataset: Ignition-default
doQueryRaw GROUPED: 2 dataset(s): [Ignition-default, Ignition-OtherProvider]
doQueryRaw API CALL: dataset='Ignition-default', unixStart=1738..., unixEnd=1738..., tagnames=[Pump/Speed, Pump/Temp]
doQueryRaw RESULT: pushed 120 points, unmatched 0, total parsed 120
TRACE
The most detailed level — logs individual data points and internal path-resolution steps. Use this only when DEBUG output is not specific enough.
- TimebaseQueryEngine — logs every step of
histprov:path parsing, each point being pushed to Ignition (first 3 per query), and key-matching logic for unmatched API results - TimebaseStorageEngine — logs path component breakdown for each write batch
Example TRACE entries:
doQueryRaw PATH DEBUG: source=histprov:Timebase:/drv:Ignition-FLSN03:Ignition-default:/tag:Pump/Speed, ...
doQueryRaw EXTRACTION step1: dataset=Ignition-default, tagPath=Pump/Speed
doQueryRaw PUSHING point #1: tag='Pump/Speed', ts=1738..., value=42.5, quality=192, source=...
Common Diagnostic Scenarios
No data appearing in Timebase after writing tags
- Set
com.flowsoftware.timebase.historian.gateway.TimebaseStorageEngineto Debug. - Trigger a tag write and watch for
Split N tags into M chunks— if absent, data is not reaching the storage engine. - Watch for
Failed to store atomic pointserrors.
Query returns no data in Ignition charts
- Set
com.flowsoftware.timebase.historian.gateway.TimebaseQueryEngineto Debug. - Run a historical query and look for
doQueryRaw GROUPED— verify the dataset name matches what you expect. - If you see
Could not determine dataset for query path, set the logger to Trace and examine thePATH DEBUGline to identify which component of the path is wrong.
Authentication errors
- Set
com.flowsoftware.timebase.historian.gateway.TimebaseRestClientto Debug. - Look for
401status codes inFailed to call endpointmessages andToken expiredwarnings. - Verify the Pulse URL, Client Id, and Client Secret are correct in the historian provider settings.
Store and Forward not draining after Timebase recovery
- Confirm
com.flowsoftware.timebase.historian.gateway.TimebaseRestClientis at Info (default) and watch for theTimebase backend is reachablemessage. - Watch for
Storage writes restoredfrom TimebaseStorageEngine — this confirms the drain bridge has opened. - If these messages do not appear within 30 seconds of Timebase recovering, set TimebaseRestClient to Debug to examine the health check calls in detail.