Before you start
Create the project with the CFML integration type.
| What you need | Why it matters |
|---|---|
| Project API token | Authenticates each request to Logister |
| Logister host URL | Used to build the ingest and check-in endpoints |
Access to Application.cfc | Lets you hook uncaught exceptions centrally |
Setup flow
Recommended installation path
- Create the project, choose
CFML, and generate an API key. - Add a small
LogisterClient.cfcwrapper aroundcfhttp. - Hook uncaught exceptions into
Application.cfc.onError(). - Send request timings as
transactionevents and query timings asmetricevents.
Tip
Start with uncaught exception capture, then add transactions, metrics, logs, and check-ins one by one as you verify each payload shape.
Start with
Send a structured error event.
shell
POST /api/v1/ingest_eventscfml
application.logister.sendEvent(
eventType = "error",
level = "error",
message = exception.message ?: "Unhandled CFML exception",
context = {
exception = {
type = exception.type ?: "Exception",
detail = exception.detail ?: "",
tagContext = exception.tagContext ?: []
}
}
);Verification
request accepted
error visible in project inbox
stack frames rendered from tagContextError handling
Capture uncaught exceptions with Application.cfc.onError().
exception.typeandexception.messagedrive the exception summaryexception.detailimproves the ColdFusion exception panelexception.tagContextpopulates template framescontext.cgi.script_nameand related CGI fields improve request context
cfml
public void function onError(any exception, string eventName) {
application.logister.sendEvent(
eventType = "error",
level = "error",
message = exception.message ?: "Unhandled exception",
context = {
exception = {
type = exception.type ?: "Exception",
detail = exception.detail ?: "",
tagContext = exception.tagContext ?: []
},
cgi = {
script_name = cgi.script_name ?: "",
request_method = cgi.request_method ?: "",
query_string = cgi.query_string ?: ""
}
}
);
}Important
If you omit tagContext, Logister can still store the event, but the CFML error view loses the template-frame detail that makes debugging much easier.
Event types
Use structured event types consistently.
| Event type | Typical CFML use |
|---|---|
transaction | Request timing, CFC method timing, remote call latency |
metric | db.query, cache timings, outbound HTTP timings |
log | Application logs with request or release metadata |
check_in | Scheduled jobs, task runners, cron-style heartbeats |
- Error
- Start here so you can confirm payload authentication and exception rendering.
- Transaction
- Add request timings next so the performance view becomes useful quickly.
- Metric
- Layer in
db.queryand other timings for deeper latency analysis. - Check-in
- Finish with scheduled jobs and cron heartbeats for monitor coverage.
More detail
Need more reference material?
The static docs now carry the CFML setup flow directly. For lower-level payload details, pair this page with the HTTP API reference so you can verify exact request shapes and authentication headers.