Commit 7593e348 authored by Him188's avatar Him188

Add standard output override

parent 4cd74872
...@@ -8,10 +8,14 @@ ...@@ -8,10 +8,14 @@
*/ */
@file:Suppress("unused") @file:Suppress("unused")
@file:JvmMultifileClass
@file:JvmName("Utils")
package net.mamoe.mirai.utils package net.mamoe.mirai.utils
import net.mamoe.mirai.Bot import net.mamoe.mirai.Bot
import kotlin.jvm.JvmMultifileClass
import kotlin.jvm.JvmName
import kotlin.jvm.JvmOverloads import kotlin.jvm.JvmOverloads
...@@ -204,7 +208,8 @@ inline fun MiraiLogger.error(lazyMessage: () -> String?, e: Throwable?) { ...@@ -204,7 +208,8 @@ inline fun MiraiLogger.error(lazyMessage: () -> String?, e: Throwable?) {
* *
* 不应该直接构造这个类的实例. 请使用 [DefaultLogger], 或使用默认的顶层日志记录 [MiraiLogger.Companion] * 不应该直接构造这个类的实例. 请使用 [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. * 不做任何事情的 logger, keep silent.
...@@ -237,14 +242,19 @@ class SimpleLogger( ...@@ -237,14 +242,19 @@ class SimpleLogger(
} }
companion object { 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 -> SimpleLogger(identity) { _, message, e ->
logger(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) override fun verbose0(message: String?) = logger(LogPriority.VERBOSE, message, null)
...@@ -266,7 +276,8 @@ class SimpleLogger( ...@@ -266,7 +276,8 @@ class SimpleLogger(
* @see disable 关闭 * @see disable 关闭
*/ */
@Suppress("MemberVisibilityCanBePrivate") @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 override val identity: String? get() = delegate.identity
/** /**
......
...@@ -15,9 +15,12 @@ import java.util.* ...@@ -15,9 +15,12 @@ import java.util.*
/** /**
* JVM 控制台日志实现 * JVM 控制台日志实现
*/ */
actual open class PlatformLogger @JvmOverloads internal actual constructor( actual open class PlatformLogger @JvmOverloads constructor(
override val identity: String? override val identity: String? = "Mirai",
val output: (String) -> Unit
) : MiraiLoggerPlatformBase() { ) : MiraiLoggerPlatformBase() {
actual constructor(identity: String?) : this(identity, ::println)
override fun verbose0(message: String?) = println(message, LoggerTextFormat.RESET) override fun verbose0(message: String?) = println(message, LoggerTextFormat.RESET)
override fun verbose0(message: String?, e: Throwable?) { override fun verbose0(message: String?, e: Throwable?) {
if (message != null) verbose(message.toString()) if (message != null) verbose(message.toString())
...@@ -52,9 +55,9 @@ actual open class PlatformLogger @JvmOverloads internal actual constructor( ...@@ -52,9 +55,9 @@ actual open class PlatformLogger @JvmOverloads internal actual constructor(
val time = SimpleDateFormat("HH:mm:ss", Locale.SIMPLIFIED_CHINESE).format(Date()) val time = SimpleDateFormat("HH:mm:ss", Locale.SIMPLIFIED_CHINESE).format(Date())
if (identity == null) { if (identity == null) {
println("$color$time : $value") output("$color$time : $value")
} else { } else {
println("$color$identity $time : $value") output("$color$identity $time : $value")
} }
} }
} }
......
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