TraceFeatureMessageLogWriter

A message processor that writes trace events to a logger.

This writer captures all trace events and writes them to the specified logger at the configured log level. It formats each event type differently to provide clear and readable logs.

Tracing to logs is particularly useful for:

  • Integration with existing logging infrastructure

  • Real-time monitoring of agent behavior

  • Filtering and searching trace events using log management tools

Example usage:

// Create a logger
val logger = LoggerFactory.create("ai.koog.agents.tracing")

val agent = AIAgent(...) {
install(Tracing) {
// Write trace events to logs at INFO level (default)
addMessageProcessor(TraceFeatureMessageLogWriter(logger))

// Write trace events to logs at DEBUG level
addMessageProcessor(TraceFeatureMessageLogWriter(
targetLogger = logger,
logLevel = LogLevel.DEBUG
))

// Optionally provide custom formatting
addMessageProcessor(TraceFeatureMessageLogWriter(
targetLogger = logger,
format = { message ->
"[TRACE] ${message::class.simpleName}"
}
))
}
}

Parameters

targetLogger

The logger to write trace events to

logLevel

The log level to use for trace events (default: INFO)

format

Optional custom formatter for trace events

actual class TraceFeatureMessageLogWriter : <ERROR CLASS> ERROR CLASS: Symbol not found for FeatureMessageLogWriter(source)

Implementation of FeatureMessageLogWriter that handles logging of feature messages with trace-level detail using a standardized or custom log message format.

Parameters

targetLogger

The KLogger instance to output trace logs.

logLevel

The log level used for trace events. Defaults to LogLevel.INFO.

format

A lambda function for custom formatting of FeatureMessage into a loggable string, or null to use a default format.

A concrete implementation of FeatureMessageLogWriter that handles logging of feature messages specifically for trace-level operations.

This class utilizes a delegate implementation, TraceFeatureMessageLogWriterImpl, to handle the formatting and processing of messages while maintaining a consistent API.

Parameters

targetLogger

The KLogger instance used for logging feature messages.

logLevel

The level at which messages will be logged. Defaults to LogLevel.INFO.

format

An optional lambda used to format FeatureMessage instances into strings for logging. If not provided, a default implementation will be used.

Constructors

Link copied to clipboard
expect constructor(targetLogger: KLogger, logLevel: FeatureMessageLogWriter.LogLevel = LogLevel.INFO, format: (FeatureMessage) -> String? = null)
actual constructor(targetLogger: ERROR CLASS: Symbol not found for KLogger, logLevel: ERROR CLASS: Symbol not found for LogLevel, format: (ERROR CLASS: Symbol not found for FeatureMessage) -> String?)

Initializes an instance of TraceFeatureMessageLogWriter.

actual constructor(targetLogger: KLogger, logLevel: FeatureMessageLogWriter.LogLevel, format: (FeatureMessage) -> String?)

Creates an instance with the specified logger, log level, and optional message formatter.

Types

Link copied to clipboard
object Companion

Companion object with factories for TraceFeatureMessageLogWriter

Properties

Link copied to clipboard
open override val isOpen: StateFlow<Boolean>
open override val isOpen: StateFlow<Boolean>
Link copied to clipboard

Functions

Link copied to clipboard
open suspend override fun close()
open suspend override fun close()
Link copied to clipboard
expect open suspend fun initialize()
open suspend fun initialize()
Link copied to clipboard
expect suspend fun onMessage(message: FeatureMessage)
suspend fun onMessage(message: FeatureMessage)
Link copied to clipboard
expect fun setMessageFilter(filter: (FeatureMessage) -> Boolean)
Link copied to clipboard
expect open override fun FeatureMessage.toLoggerMessage(): String
actual open override fun ERROR CLASS: Symbol not found for FeatureMessage.toLoggerMessage(): String
actual open override fun FeatureMessage.toLoggerMessage(): String