Relay

open fun <C : Log.Category> Relay(sink: () -> Log.Sink<C>?): Log.Sink<C>

Relay is a Sink that forwards logs to another Sink.

This can be used for internal implementations in Emitters to forward logs to the main Sink assigned by the application.

Example

class Manager: Log.Emitter {
var logger: Log.Sink<MyCategory>? = Log.Sink.Null

private val internalComponent = Component(
// Forward logs to the dynamic logger property above
logger = Relay { logger }
)
}

Return

A Sink that forwards logs to the given sink.

Parameters

sink

A lambda that returns the sink to forward logs to.