Logger

Cross-platform logger with four severity levels for plugin development.

A cross-platform logger with four severity levels. Create one instance per component, then log at the appropriate level throughout that component.

import dev.krtirtho.plugin_interfaces.extras.logger.Logger

class RealMetadataSearchAPI(private val spotr: SpotrClient) : MetadataSearchAPI {
    private val logger = Logger("SearchAPI")

    override suspend fun searchTracks(query: String, pagination: PaginationStrategy?):
        PaginationResult<MetadataSearchResult.Track> {
        logger.d { "searching: query=$query" }

        val response = spotr.get {
            url { encodedPath = "/search" }
            parameter("q", query)
        }

        logger.i { "search returned ${response.statusCode}" }
        // ...parse and return
    }
}
Method Level Purpose
d { "..." } Debug Development detail, tracing
i { "..." } Info General operational events
w { "..." } Warning Recoverable issues, fallbacks
e { "..." } Error Exceptions (optional Throwable for stack traces)

Messages use lazy evaluation - the lambda only runs if the log level is enabled. Pass a Throwable to e() for stack trace output.