-
I can provide solution like this:
LoggerFactory.spiFactory = { loggerName, enabled -> object : LoggerSPI { override fun isLoggable(level: tigase.halcyon.core.logger.Level): Boolean { TODO("Not yet implemented") } override fun log(level: tigase.halcyon.core.logger.Level, msg: String, caught: Throwable?) { println("${Date()} [$level] $loggerName: $msg") TODO("Not yet implemented") } } }
Note, that it will replace current logging handler.
If you need I can expand logging wrapper in Halcyon to be more elastic, allow to add more handlers, formatters etc.
-
I really need something simple. Replacing current logging handler works for me too. I just need a way to redirect all log records to my view to see what is going on on an actual device.
When you have something please provide some code examples on how to use my own logger.
I already have implementation, you can take a look at it: tigase.convene.view.DebugView
-
I added new class:
LoggerSPIBuffer
. It has buffer for lastN
log entries.To configure it, use this code at the beginning:
val bufferLogger= LoggerSPIBuffer(5) // buffer size is set to 5 LoggerFactory.spiFactory = bufferLogger::create
When instance of DebugView will be created you can get log entries from buffer and you should register callback in
LoggerSPIBuffer
to be informed about new entries added to buffer.// access to buffered entries val listOfLastEntries=bufferLogger.getBuffer() // adding callback bufferLogger.callback = {entry: LoggerSPIBuffer.Entry -> println("Nowy log entry $entry") }
Type |
Bug
|
Priority |
Normal
|
Assignee | |
Spent time |
0
|
Logging messages needs to be shown in custom log console.