SubwayTooter-Android-App/app/src/main/java/jp/juggler/subwaytooter/util/LogCategory.kt

97 lines
2.4 KiB
Kotlin
Raw Normal View History

package jp.juggler.subwaytooter.util
import android.content.res.Resources
2018-08-28 14:56:09 +02:00
import android.util.Log
2018-08-28 14:56:09 +02:00
class LogCategory(category : String) {
companion object {
2018-08-28 14:56:09 +02:00
private const val TAG = "SubwayTooter"
2018-08-28 14:56:09 +02:00
private fun format(fmt : String, args : Array<out Any?>) =
if(args.isEmpty()) fmt else String.format(fmt, *args)
2018-08-28 14:56:09 +02:00
private fun format(res : Resources, string_id : Int, args : Array<out Any?>) =
res.getString(string_id, *args)
private fun Throwable.withCaption(caption : String) =
"${caption} :${javaClass.simpleName} ${message}"
}
2018-08-28 14:56:09 +02:00
private val tag = "$TAG:$category"
fun e(fmt : String, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.e(tag, format(fmt, args))
}
fun w(fmt : String, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.w(tag, format(fmt, args))
}
fun i(fmt : String, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.i(tag, format(fmt, args))
}
fun d(fmt : String, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.d(tag, format(fmt, args))
}
2018-08-28 14:56:09 +02:00
fun v(fmt : String, vararg args : Any?) {
Log.v(tag, format(fmt, args))
}
////////////////////////
// getString()
fun e(res : Resources, string_id : Int, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.e(tag, format(res, string_id, args))
}
fun w(res : Resources, string_id : Int, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.w(tag, format(res, string_id, args))
}
fun i(res : Resources, string_id : Int, vararg args : Any?) {
2018-08-28 14:56:09 +02:00
Log.i(tag, format(res, string_id, args))
}
2018-08-28 14:56:09 +02:00
fun d(res : Resources, string_id : Int, vararg args : Any?) {
Log.d(tag, format(res, string_id, args))
}
2018-08-28 14:56:09 +02:00
fun v(res : Resources, string_id : Int, vararg args : Any?) {
Log.v(tag, format(res, string_id, args))
}
2018-08-28 14:56:09 +02:00
////////////////////////
// exception
2018-08-28 14:56:09 +02:00
fun e(ex : Throwable, fmt : String, vararg args : Any?) {
Log.e(tag, ex.withCaption(format(fmt, args)))
}
2018-08-28 14:56:09 +02:00
fun w(ex : Throwable, fmt : String, vararg args : Any?) {
Log.w(tag, ex.withCaption(format(fmt, args)))
}
2018-08-28 14:56:09 +02:00
fun i(ex : Throwable, fmt : String, vararg args : Any?) {
Log.i(tag, ex.withCaption(format(fmt, args)))
}
2018-08-28 14:56:09 +02:00
fun d(ex : Throwable, fmt : String, vararg args : Any?) {
Log.d(tag, ex.withCaption(format(fmt, args)))
}
2018-08-28 14:56:09 +02:00
fun v(ex : Throwable, fmt : String, vararg args : Any?) {
Log.v(tag, ex.withCaption(format(fmt, args)))
}
2018-08-28 14:56:09 +02:00
////////////////////////
// stack trace
2018-08-28 14:56:09 +02:00
fun trace(ex : Throwable, fmt : String, vararg args : Any?) {
Log.e(tag, format(fmt, args), ex)
}
2018-08-28 14:56:09 +02:00
fun trace(ex : Throwable) {
Log.e(tag, "exception.", ex)
}
}