fun <reified Type : Any> Type.log(level: Level, message: String): Unitfun <reified Type : Any> Type.log(level: Level, message: String, throwable: Throwable): Unitfun <reified Type : Any> Type.log(level: Level, message: String, param: Any): Unitfun <reified Type : Any> Type.log(level: Level, message: String, vararg params: Any): Unit