From e24f6d0df1ad06ac8d3d12228fcd9d3fad23ebb0 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Tue, 26 Sep 2023 03:17:07 +0800 Subject: [PATCH] feat: styled new SLog --- .../sweetproperty/utils/debug/SLog.kt | 69 ++++++++++++++++++- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/utils/debug/SLog.kt b/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/utils/debug/SLog.kt index cc04023..71f5b1a 100644 --- a/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/utils/debug/SLog.kt +++ b/sweetproperty-gradle-plugin/src/main/java/com/highcapable/sweetproperty/utils/debug/SLog.kt @@ -19,20 +19,85 @@ * * This file is created by fankes on 2023/8/27. */ -@file:Suppress("unused") +@file:Suppress("unused", "MemberVisibilityCanBePrivate") package com.highcapable.sweetproperty.utils.debug import com.highcapable.sweetproperty.SweetProperty +import org.apache.log4j.Logger /** * 全局 Log 管理类 */ internal object SLog { + internal const val DONE = "✅" + internal const val IGNORE = "❎" + internal const val ERROR = "❌" + internal const val WARN = "⚠️" + internal const val LINK = "➡️" + internal const val WIRE = "⚙️" + internal const val UP = "⬆️" + internal const val ROTATE = "\uD83D\uDD04" + internal const val ANLZE = "\uD83D\uDD0D" + internal const val STRNG = "\uD83D\uDCAA" + + /** 当前日志输出对象 */ + private val logger = Logger.getLogger(SLog::class.java) + + /** + * 打印 Info (提醒) 级别 Log (绿色) + * @param msg 消息内容 + * @param symbol 前缀符号 - 仅限非 [noTag] - 默认无 + * @param noTag 无标签 - 默认否 + */ + internal fun note(msg: Any, symbol: String = "", noTag: Boolean = false) = + log(if (noTag) msg else msg.createSymbolMsg(symbol), color = "38;5;10") + + /** + * 打印 Info 级别 Log (无颜色) + * @param msg 消息内容 + * @param symbol 前缀符号 - 仅限非 [noTag] - 默认无 + * @param noTag 无标签 - 默认否 + */ + internal fun info(msg: Any, symbol: String = "", noTag: Boolean = false) = + log(if (noTag) msg else msg.createSymbolMsg(symbol)) + + /** + * 打印 Warn 级别 Log (黄色) + * @param msg 消息内容 + * @param symbol 前缀符号 - 仅限非 [noTag] - 默认 [WARN] + * @param noTag 无标签 - 默认否 + */ + internal fun warn(msg: Any, symbol: String = WARN, noTag: Boolean = false) = + log(if (noTag) msg else msg.createSymbolMsg(symbol), color = "33") + + /** + * 打印 Error 级别 Log (红色) + * @param msg 消息内容 + * @param symbol 前缀符号 - 仅限非 [noTag] - 默认 [ERROR] + * @param noTag 无标签 - 默认否 + */ + internal fun error(msg: Any, symbol: String = ERROR, noTag: Boolean = false) = + log(if (noTag) msg else msg.createSymbolMsg(symbol), isError = true) + + /** + * 创建符号消息内容 + * @param symbol 前缀符号 + * @return [String] + */ + private fun Any.createSymbolMsg(symbol: String) = + if (symbol.isNotBlank()) "[${SweetProperty.TAG}] $symbol $this" else "[${SweetProperty.TAG}] $this" + /** * 打印 Log * @param msg 消息内容 + * @param color 颜色代码 - 默认无颜色 + * @param isError 是否强制为错误日志 - 默认否 */ - internal fun log(msg: String) = println("[${SweetProperty.TAG}] $msg") + private fun log(msg: Any, color: String = "0", isError: Boolean = false) = when { + isError -> logger.error(msg) + color != "0" -> println("\u001B[${color}m$msg\u001B[0m") + else -> println(msg) + } } \ No newline at end of file