mirror of
https://github.com/mamoe/mirai.git
synced 2025-03-24 06:10:09 +08:00
Add standard output override
This commit is contained in:
parent
4cd7487253
commit
7593e34898
@ -8,10 +8,14 @@
|
||||
*/
|
||||
|
||||
@file:Suppress("unused")
|
||||
@file:JvmMultifileClass
|
||||
@file:JvmName("Utils")
|
||||
|
||||
package net.mamoe.mirai.utils
|
||||
|
||||
import net.mamoe.mirai.Bot
|
||||
import kotlin.jvm.JvmMultifileClass
|
||||
import kotlin.jvm.JvmName
|
||||
import kotlin.jvm.JvmOverloads
|
||||
|
||||
|
||||
@ -204,7 +208,8 @@ inline fun MiraiLogger.error(lazyMessage: () -> String?, e: Throwable?) {
|
||||
*
|
||||
* 不应该直接构造这个类的实例. 请使用 [DefaultLogger], 或使用默认的顶层日志记录 [MiraiLogger.Companion]
|
||||
*/
|
||||
expect open class PlatformLogger @JvmOverloads internal constructor(identity: String? = "Mirai") : MiraiLoggerPlatformBase
|
||||
expect open class PlatformLogger @JvmOverloads constructor(identity: String? = "Mirai") : MiraiLoggerPlatformBase
|
||||
|
||||
|
||||
/**
|
||||
* 不做任何事情的 logger, keep silent.
|
||||
@ -237,14 +242,19 @@ class SimpleLogger(
|
||||
}
|
||||
|
||||
companion object {
|
||||
inline operator fun invoke(crossinline logger: (message: String?, e: Throwable?) -> Unit): SimpleLogger = SimpleLogger(null, logger)
|
||||
inline operator fun invoke(crossinline logger: (message: String?, e: Throwable?) -> Unit): SimpleLogger =
|
||||
SimpleLogger(null, logger)
|
||||
|
||||
inline operator fun invoke(identity: String?, crossinline logger: (message: String?, e: Throwable?) -> Unit): SimpleLogger =
|
||||
inline operator fun invoke(
|
||||
identity: String?,
|
||||
crossinline logger: (message: String?, e: Throwable?) -> Unit
|
||||
): SimpleLogger =
|
||||
SimpleLogger(identity) { _, message, e ->
|
||||
logger(message, e)
|
||||
}
|
||||
|
||||
operator fun invoke(logger: (priority: LogPriority, message: String?, e: Throwable?) -> Unit): SimpleLogger = SimpleLogger(null, logger)
|
||||
operator fun invoke(logger: (priority: LogPriority, message: String?, e: Throwable?) -> Unit): SimpleLogger =
|
||||
SimpleLogger(null, logger)
|
||||
}
|
||||
|
||||
override fun verbose0(message: String?) = logger(LogPriority.VERBOSE, message, null)
|
||||
@ -266,7 +276,8 @@ class SimpleLogger(
|
||||
* @see disable 关闭
|
||||
*/
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogger, default: Boolean) : MiraiLoggerPlatformBase() {
|
||||
class MiraiLoggerWithSwitch internal constructor(private val delegate: MiraiLogger, default: Boolean) :
|
||||
MiraiLoggerPlatformBase() {
|
||||
override val identity: String? get() = delegate.identity
|
||||
|
||||
/**
|
||||
|
@ -15,9 +15,12 @@ import java.util.*
|
||||
/**
|
||||
* JVM 控制台日志实现
|
||||
*/
|
||||
actual open class PlatformLogger @JvmOverloads internal actual constructor(
|
||||
override val identity: String?
|
||||
actual open class PlatformLogger @JvmOverloads constructor(
|
||||
override val identity: String? = "Mirai",
|
||||
val output: (String) -> Unit
|
||||
) : MiraiLoggerPlatformBase() {
|
||||
actual constructor(identity: String?) : this(identity, ::println)
|
||||
|
||||
override fun verbose0(message: String?) = println(message, LoggerTextFormat.RESET)
|
||||
override fun verbose0(message: String?, e: Throwable?) {
|
||||
if (message != null) verbose(message.toString())
|
||||
@ -52,9 +55,9 @@ actual open class PlatformLogger @JvmOverloads internal actual constructor(
|
||||
val time = SimpleDateFormat("HH:mm:ss", Locale.SIMPLIFIED_CHINESE).format(Date())
|
||||
|
||||
if (identity == null) {
|
||||
println("$color$time : $value")
|
||||
output("$color$time : $value")
|
||||
} else {
|
||||
println("$color$identity $time : $value")
|
||||
output("$color$identity $time : $value")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user