Async Appenders
How It Works
Enabling Async Logging
class extends="logbox.system.logging.AbstractAppender" {
function logMessage( required logEvent ){
var entry = buildEntry( logEvent )
if ( getProperty( "async", false ) ) {
// Non-blocking: hand off to the queue
queueMessage( entry )
} else {
// Blocking: write directly
writeEntry( entry )
}
}
// Called by the async listener for each queued item
function processQueueElement( required data, required queueContext, required queue ){
writeEntry( data )
}
private function writeEntry( required entry ){
// ... write to your destination
}
private function buildEntry( required logEvent ){
return {
severity : severityToString( logEvent.getSeverity() ),
message : logEvent.getMessage(),
category : logEvent.getCategory(),
timestamp : logEvent.getTimestamp(),
extraInfo : logEvent.getExtraInfo()
}
}
}Queue API Reference
queueMessage( required data )
queueMessage( required data )startLogListener()
startLogListener()runLogListener( force = false )
runLogListener( force = false )Lifecycle Hook Methods
Method
When It Fires
Batching Example
Last updated
Was this helpful?