Commit 797cef15 authored by Him188's avatar Him188

Logger: Accept String over Any; Introduce common optional log functions

parent dc55dbb4
...@@ -86,7 +86,7 @@ interface MiraiLogger { ...@@ -86,7 +86,7 @@ interface MiraiLogger {
* 记录一个 `verbose` 级别的日志. * 记录一个 `verbose` 级别的日志.
* 无关紧要的, 经常大量输出的日志应使用它. * 无关紧要的, 经常大量输出的日志应使用它.
*/ */
fun verbose(any: Any?) fun verbose(message: String?)
fun verbose(e: Throwable?) = verbose(null, e) fun verbose(e: Throwable?) = verbose(null, e)
fun verbose(message: String?, e: Throwable?) fun verbose(message: String?, e: Throwable?)
...@@ -94,7 +94,7 @@ interface MiraiLogger { ...@@ -94,7 +94,7 @@ interface MiraiLogger {
/** /**
* 记录一个 _调试_ 级别的日志. * 记录一个 _调试_ 级别的日志.
*/ */
fun debug(any: Any?) fun debug(message: String?)
fun debug(e: Throwable?) = debug(null, e) fun debug(e: Throwable?) = debug(null, e)
fun debug(message: String?, e: Throwable?) fun debug(message: String?, e: Throwable?)
...@@ -103,7 +103,7 @@ interface MiraiLogger { ...@@ -103,7 +103,7 @@ interface MiraiLogger {
/** /**
* 记录一个 _信息_ 级别的日志. * 记录一个 _信息_ 级别的日志.
*/ */
fun info(any: Any?) fun info(message: String?)
fun info(e: Throwable?) = info(null, e) fun info(e: Throwable?) = info(null, e)
fun info(message: String?, e: Throwable?) fun info(message: String?, e: Throwable?)
...@@ -112,7 +112,7 @@ interface MiraiLogger { ...@@ -112,7 +112,7 @@ interface MiraiLogger {
/** /**
* 记录一个 _警告_ 级别的日志. * 记录一个 _警告_ 级别的日志.
*/ */
fun warning(any: Any?) fun warning(message: String?)
fun warning(e: Throwable?) = warning(null, e) fun warning(e: Throwable?) = warning(null, e)
fun warning(message: String?, e: Throwable?) fun warning(message: String?, e: Throwable?)
...@@ -121,7 +121,7 @@ interface MiraiLogger { ...@@ -121,7 +121,7 @@ interface MiraiLogger {
/** /**
* 记录一个 _错误_ 级别的日志. * 记录一个 _错误_ 级别的日志.
*/ */
fun error(e: Any?) fun error(message: String?)
fun error(e: Throwable?) = error(null, e) fun error(e: Throwable?) = error(null, e)
fun error(message: String?, e: Throwable?) fun error(message: String?, e: Throwable?)
...@@ -149,6 +149,47 @@ interface MiraiLogger { ...@@ -149,6 +149,47 @@ interface MiraiLogger {
operator fun plusAssign(follower: MiraiLogger) operator fun plusAssign(follower: MiraiLogger)
} }
inline fun MiraiLogger.verbose(lazyMessage: () -> String) {
if (this is MiraiLoggerWithSwitch && switch) verbose(lazyMessage())
}
inline fun MiraiLogger.verbose(lazyMessage: () -> String, e: Throwable?) {
if (this is MiraiLoggerWithSwitch && switch) verbose(lazyMessage(), e)
}
inline fun MiraiLogger.debug(lazyMessage: () -> String?) {
if (this is MiraiLoggerWithSwitch && switch) debug(lazyMessage())
}
inline fun MiraiLogger.debug(lazyMessage: () -> String?, e: Throwable?) {
if (this is MiraiLoggerWithSwitch && switch) debug(lazyMessage(), e)
}
inline fun MiraiLogger.info(lazyMessage: () -> String?) {
if (this is MiraiLoggerWithSwitch && switch) info(lazyMessage())
}
inline fun MiraiLogger.info(lazyMessage: () -> String?, e: Throwable?) {
if (this is MiraiLoggerWithSwitch && switch) info(lazyMessage(), e)
}
inline fun MiraiLogger.warning(lazyMessage: () -> String?) {
if (this is MiraiLoggerWithSwitch && switch) warning(lazyMessage())
}
inline fun MiraiLogger.warning(lazyMessage: () -> String?, e: Throwable?) {
if (this is MiraiLoggerWithSwitch && switch) warning(lazyMessage(), e)
}
inline fun MiraiLogger.error(lazyMessage: () -> String?) {
if (this is MiraiLoggerWithSwitch && switch) error(lazyMessage())
}
inline fun MiraiLogger.error(lazyMessage: () -> String?, e: Throwable?) {
if (this is MiraiLoggerWithSwitch && switch) error(lazyMessage(), e)
}
/** /**
* 当前平台的默认的日志记录器. * 当前平台的默认的日志记录器.
* 在 _JVM 控制台_ 端的实现为 [println] * 在 _JVM 控制台_ 端的实现为 [println]
...@@ -165,11 +206,11 @@ expect open class PlatformLogger @JvmOverloads internal constructor(identity: St ...@@ -165,11 +206,11 @@ expect open class PlatformLogger @JvmOverloads internal constructor(identity: St
object SilentLogger : PlatformLogger() { object SilentLogger : PlatformLogger() {
override val identity: String? = null override val identity: String? = null
override fun error0(any: Any?) = Unit override fun error0(message: String?) = Unit
override fun debug0(any: Any?) = Unit override fun debug0(message: String?) = Unit
override fun warning0(any: Any?) = Unit override fun warning0(message: String?) = Unit
override fun verbose0(any: Any?) = Unit override fun verbose0(message: String?) = Unit
override fun info0(any: Any?) = Unit override fun info0(message: String?) = Unit
} }
/** /**
...@@ -180,15 +221,15 @@ class SimpleLogger(override val identity: String?, private val logger: (String?, ...@@ -180,15 +221,15 @@ class SimpleLogger(override val identity: String?, private val logger: (String?,
operator fun invoke(logger: (String?, Throwable?) -> Unit): SimpleLogger = SimpleLogger(null, logger) operator fun invoke(logger: (String?, Throwable?) -> Unit): SimpleLogger = SimpleLogger(null, logger)
} }
override fun verbose0(any: Any?) = logger(any?.toString(), null) override fun verbose0(message: String?) = logger(message, null)
override fun verbose0(message: String?, e: Throwable?) = logger(message, e) override fun verbose0(message: String?, e: Throwable?) = logger(message, e)
override fun debug0(any: Any?) = logger(any?.toString(), null) override fun debug0(message: String?) = logger(message, null)
override fun debug0(message: String?, e: Throwable?) = logger(message, e) override fun debug0(message: String?, e: Throwable?) = logger(message, e)
override fun info0(any: Any?) = logger(any?.toString(), null) override fun info0(message: String?) = logger(message, null)
override fun info0(message: String?, e: Throwable?) = logger(message, e) override fun info0(message: String?, e: Throwable?) = logger(message, e)
override fun warning0(any: Any?) = logger(any?.toString(), null) override fun warning0(message: String?) = logger(message, null)
override fun warning0(message: String?, e: Throwable?) = logger(message, e) override fun warning0(message: String?, e: Throwable?) = logger(message, e)
override fun error0(any: Any?) = logger(any?.toString(), null) override fun error0(message: String?) = logger(message, null)
override fun error0(message: String?, e: Throwable?) = logger(message, e) override fun error0(message: String?, e: Throwable?) = logger(message, e)
} }
...@@ -218,56 +259,16 @@ class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogg ...@@ -218,56 +259,16 @@ class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogg
switch = false switch = false
} }
override fun verbose0(any: Any?) = if (switch) delegate.verbose(any) else Unit override fun verbose0(message: String?) = if (switch) delegate.verbose(message) else Unit
override fun verbose0(message: String?, e: Throwable?) = if (switch) delegate.verbose(message, e) else Unit override fun verbose0(message: String?, e: Throwable?) = if (switch) delegate.verbose(message, e) else Unit
override fun debug0(any: Any?) = if (switch) delegate.debug(any) else Unit override fun debug0(message: String?) = if (switch) delegate.debug(message) else Unit
override fun debug0(message: String?, e: Throwable?) = if (switch) delegate.debug(message, e) else Unit override fun debug0(message: String?, e: Throwable?) = if (switch) delegate.debug(message, e) else Unit
override fun info0(any: Any?) = if (switch) delegate.info(any) else Unit override fun info0(message: String?) = if (switch) delegate.info(message) else Unit
override fun info0(message: String?, e: Throwable?) = if (switch) delegate.info(message, e) else Unit override fun info0(message: String?, e: Throwable?) = if (switch) delegate.info(message, e) else Unit
override fun warning0(any: Any?) = if (switch) delegate.warning(any) else Unit override fun warning0(message: String?) = if (switch) delegate.warning(message) else Unit
override fun warning0(message: String?, e: Throwable?) = if (switch) delegate.warning(message, e) else Unit override fun warning0(message: String?, e: Throwable?) = if (switch) delegate.warning(message, e) else Unit
override fun error0(any: Any?) = if (switch) delegate.error(any) else Unit override fun error0(message: String?) = if (switch) delegate.error(message) else Unit
override fun error0(message: String?, e: Throwable?) = if (switch) delegate.error(message, e) else Unit override fun error0(message: String?, e: Throwable?) = if (switch) delegate.error(message, e) else Unit
inline fun verbose(lazyMessage: () -> String) {
if (switch) verbose(lazyMessage())
}
inline fun verbose(lazyMessage: () -> String, e: Throwable?) {
if (switch) verbose(lazyMessage(), e)
}
inline fun debug(lazyMessage: () -> Any?) {
if (switch) debug(lazyMessage())
}
inline fun debug(lazyMessage: () -> String?, e: Throwable?) {
if (switch) debug(lazyMessage(), e)
}
inline fun info(lazyMessage: () -> Any?) {
if (switch) info(lazyMessage())
}
inline fun info(lazyMessage: () -> String?, e: Throwable?) {
if (switch) info(lazyMessage(), e)
}
inline fun warning(lazyMessage: () -> Any?) {
if (switch) warning(lazyMessage())
}
inline fun warning(lazyMessage: () -> String?, e: Throwable?) {
if (switch) warning(lazyMessage(), e)
}
inline fun error(lazyMessage: () -> Any?) {
if (switch) error(lazyMessage())
}
inline fun error(lazyMessage: () -> String?, e: Throwable?) {
if (switch) error(lazyMessage(), e)
}
} }
/** /**
...@@ -280,9 +281,9 @@ class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogg ...@@ -280,9 +281,9 @@ class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogg
abstract class MiraiLoggerPlatformBase : MiraiLogger { abstract class MiraiLoggerPlatformBase : MiraiLogger {
final override var follower: MiraiLogger? = null final override var follower: MiraiLogger? = null
final override fun verbose(any: Any?) { final override fun verbose(message: String?) {
follower?.verbose(any) follower?.verbose(message)
verbose0(any) verbose0(message)
} }
final override fun verbose(message: String?, e: Throwable?) { final override fun verbose(message: String?, e: Throwable?) {
...@@ -290,9 +291,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger { ...@@ -290,9 +291,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger {
verbose0(message, e) verbose0(message, e)
} }
final override fun debug(any: Any?) { final override fun debug(message: String?) {
follower?.debug(any) follower?.debug(message)
debug0(any) debug0(message)
} }
final override fun debug(message: String?, e: Throwable?) { final override fun debug(message: String?, e: Throwable?) {
...@@ -300,9 +301,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger { ...@@ -300,9 +301,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger {
debug0(message, e) debug0(message, e)
} }
final override fun info(any: Any?) { final override fun info(message: String?) {
follower?.info(any) follower?.info(message)
info0(any) info0(message)
} }
final override fun info(message: String?, e: Throwable?) { final override fun info(message: String?, e: Throwable?) {
...@@ -310,9 +311,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger { ...@@ -310,9 +311,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger {
info0(message, e) info0(message, e)
} }
final override fun warning(any: Any?) { final override fun warning(message: String?) {
follower?.warning(any) follower?.warning(message)
warning0(any) warning0(message)
} }
final override fun warning(message: String?, e: Throwable?) { final override fun warning(message: String?, e: Throwable?) {
...@@ -320,9 +321,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger { ...@@ -320,9 +321,9 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger {
warning0(message, e) warning0(message, e)
} }
final override fun error(e: Any?) { final override fun error(message: String?) {
follower?.error(e) follower?.error(message)
error0(e) error0(message)
} }
final override fun error(message: String?, e: Throwable?) { final override fun error(message: String?, e: Throwable?) {
...@@ -330,15 +331,15 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger { ...@@ -330,15 +331,15 @@ abstract class MiraiLoggerPlatformBase : MiraiLogger {
error0(message, e) error0(message, e)
} }
protected abstract fun verbose0(any: Any?) protected abstract fun verbose0(message: String?)
protected abstract fun verbose0(message: String?, e: Throwable?) protected abstract fun verbose0(message: String?, e: Throwable?)
protected abstract fun debug0(any: Any?) protected abstract fun debug0(message: String?)
protected abstract fun debug0(message: String?, e: Throwable?) protected abstract fun debug0(message: String?, e: Throwable?)
protected abstract fun info0(any: Any?) protected abstract fun info0(message: String?)
protected abstract fun info0(message: String?, e: Throwable?) protected abstract fun info0(message: String?, e: Throwable?)
protected abstract fun warning0(any: Any?) protected abstract fun warning0(message: String?)
protected abstract fun warning0(message: String?, e: Throwable?) protected abstract fun warning0(message: String?, e: Throwable?)
protected abstract fun error0(any: Any?) protected abstract fun error0(message: String?)
protected abstract fun error0(message: String?, e: Throwable?) protected abstract fun error0(message: String?, e: Throwable?)
override operator fun <T : MiraiLogger> plus(follower: T): T { override operator fun <T : MiraiLogger> plus(follower: T): T {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment