Custom Logger Example
Either use the timber version and plug in your custom loggers into timber (check out timber for that please) or simply plug in a custom logger into lumberjack directly if you do not use the timber solution like following - all you need to do is implement a single function and then add your logger to Lumberjack
(following example is the current ConsoleLogger
implementation).
class ConsoleLogger(
override var enabled: Boolean = true,
override val filter: LumberjackFilter = DefaultLumberjackFilter
) : ILumberjackLogger {
override fun log(
level: Level,
tag: String?,
time: Long,
fileName: String,
className: String,
methodName: String,
line: Int,
msg: String?,
throwable: Throwable?
) {
val link = "(${fileName}:${line})"
val log = listOfNotNull(
msg,
link.takeIf { throwable == null },
throwable?.stackTraceToString()?.let { "\n$it" }
).joinToString(" ")
Log.println(level.priority, tag, log)
}
}
That's all. You can do the logging asynchronous as well if you want - just do whatever you want inside your logger implementation.