每次重新启动应用程序或当日志文件数量足够时,我都必须编写日志文件并将其发送到服务器。经过互联网研究:我找到了 Timber 和 java.util.logging.Logger。我想创建一个自定义的 Timber 树并使用 Logger 来保存日志文件。是否有图书馆已经以更好的方式做到了这一点?:D 也许是小日志?
这是我的poc:
private const val SIZE_LIMIT = 10000
private const val NB_FILE_LIMIT = 3
object TimberLogImplementation : TimberLog{
override fun init(context: Context) {
val path: String = File(context.getExternalFilesDir("MyLog"),"log").absolutePath
val TAG = "FileLoggerTree"
val fileHandler: FileHandler
val logger: Logger = MyLogger(TAG)
logger.level = Level.ALL
if (logger.handlers.isEmpty()) {
fileHandler = FileHandler(path, SIZE_LIMIT, NB_FILE_LIMIT, false)
fileHandler.formatter = SimpleFormatter()
logger.addHandler(fileHandler)
} else {
fileHandler = logger.handlers[0] as FileHandler
}
val fileLoggerTree = FileLoggerTree(logger)
Timber.plant(fileLoggerTree)
}
}
class FileLoggerTree(
private val logger: Logger
) : Timber.Tree() {
override fun log(priority: Int, tag: String?, message: String, t: Throwable?) {
logger.log(fromPriorityToLevel(priority), message)
}
private fun fromPriorityToLevel(priority: Int): Level {
return when (priority) {
Log.VERBOSE -> Level.FINER
Log.DEBUG -> Level.FINE
Log.INFO -> Level.INFO
Log.WARN -> Level.WARNING
Log.ERROR -> Level.SEVERE
Log.ASSERT -> Level.SEVERE
else -> Level.FINEST
}
}
}
class MyLogger(name: String): Logger(name, null)
但是不知道是不是超大