diff --git a/docs-source/src/.vuepress/configs/template.ts b/docs-source/src/.vuepress/configs/template.ts index a1c7a9b8..25230908 100644 --- a/docs-source/src/.vuepress/configs/template.ts +++ b/docs-source/src/.vuepress/configs/template.ts @@ -50,7 +50,8 @@ const navigationLinks = { baseApiPath + 'hook/type/android/ViewTypeFactory', baseApiPath + 'hook/type/java/VariableTypeFactory', baseApiPath + 'hook/type/defined/DefinedTypeFactory', - baseApiPath + 'hook/log/LoggerFactory', + baseApiPath + 'hook/log/YLog', + baseApiPath + 'hook/log/data/YLogData', baseApiPath + 'hook/factory/ReflectionFactory', baseApiPath + 'hook/factory/YukiHookFactory', baseApiPath + 'hook/entity/YukiBaseHooker', diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/YukiHookAPI.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/YukiHookAPI.md index 9615d178..68b2c358 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/YukiHookAPI.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/YukiHookAPI.md @@ -377,7 +377,7 @@ object Configs ### debugLog - method ```kotlin:no-line-numbers -inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) +inline fun debugLog(initiate: YLog.Configs.() -> Unit) ``` **Change Records** @@ -386,7 +386,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) **Function Illustrate** -> 配置 `YukiHookLogger.Configs` 相关参数。 +> 配置 `YLog.Configs` 相关参数。

debugTag - field

@@ -396,7 +396,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) `v1.1.0` `deprecated` -请迁移到 `YukiHookLogger.Configs.tag` +请迁移到 `YLog.Configs.tag` ### isDebug - field @@ -422,7 +422,7 @@ var isDebug: Boolean `v1.1.0` `deprecated` -请迁移到 `YukiHookLogger.Configs.isEnable` +请迁移到 `YLog.Configs.isEnable`

isEnableModulePrefsCache - field

@@ -628,14 +628,14 @@ object HookEntry : IYukiHookXposedInit { object HookEntry : IYukiHookXposedInit { override fun onInit() { - YukiHookLogger.Configs.tag = "YukiHookAPI" - YukiHookLogger.Configs.isEnable = true - YukiHookLogger.Configs.isRecord = false - YukiHookLogger.Configs.elements( - YukiHookLogger.Configs.TAG, - YukiHookLogger.Configs.PRIORITY, - YukiHookLogger.Configs.PACKAGE_NAME, - YukiHookLogger.Configs.USER_ID + YLog.Configs.tag = "YukiHookAPI" + YLog.Configs.isEnable = true + YLog.Configs.isRecord = false + YLog.Configs.elements( + YLog.Configs.TAG, + YLog.Configs.PRIORITY, + YLog.Configs.PACKAGE_NAME, + YLog.Configs.USER_ID ) YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/YLog.md similarity index 58% rename from docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md rename to docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/YLog.md index a8b15bca..2562f051 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/YLog.md @@ -10,29 +10,391 @@ You can use the **Chrome Translation Plugin** to translate entire pages for refe ::: -# LoggerFactory - kt - -**Change Records** - -`v1.0` `first` - -**Function Illustrate** - -> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。 - -## LoggerType - class +# YLog - object ```kotlin:no-line-numbers -enum class LoggerType +object YLog ``` **Change Records** -`v1.1.0` `added` +`v1.2.0` `added` **Function Illustrate** -> 需要打印的日志类型。 +> 全局 Log 管理类。 + +## inMemoryData - field + +```kotlin:no-line-numbers +val inMemoryData: MutableList +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 当前全部已记录的日志数据。 + +::: danger + +获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 + +::: + +## contents - field + +```kotlin:no-line-numbers +val contents: String +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 获取当前日志文件内容。 + +如果当前没有已记录的日志会返回空字符串。 + +::: danger + +获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 + +::: + +## contents - method + +```kotlin:no-line-numbers +fun contents(data: List): String +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 获取、格式化当前日志文件内容。 + +如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。 + +::: danger + +获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 + +::: + +## clear - method + +```kotlin:no-line-numbers +fun clear() +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 清除全部已记录的日志。 + +你也可以直接获取 [inMemoryData](#inmemorydata-field) 来清除。 + +::: danger + +获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 + +::: + +## saveToFile - method + +```kotlin:no-line-numbers +fun saveToFile(fileName: String, data: List) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 保存当前日志到文件。 + +若当前未开启 `Configs.isRecord` 或记录为空则不会进行任何操作。 + +日志文件会追加到 `fileName` 的文件结尾,若文件不存在会自动创建。 + +::: danger + +文件读写权限取决于当前宿主、模块已获取的权限。 + +::: + +## Configs - object + +```kotlin:no-line-numbers +object Configs +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 配置 `YLog`。 + +### TAG - field + +```kotlin:no-line-numbers +const val TAG: Int +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 标签。 + +### PRIORITY - field + +```kotlin:no-line-numbers +const val PRIORITY: Int +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 优先级。 + +### PACKAGE_NAME - field + +```kotlin:no-line-numbers +const val PACKAGE_NAME: Int +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 当前宿主的包名。 + +### USER_ID - field + +```kotlin:no-line-numbers +const val USER_ID: Int +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 当前宿主的用户 ID (主用户不显示)。 + +### tag - field + +```kotlin:no-line-numbers +var tag: String +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 这是一个调试日志的全局标识。 + +默认文案为 `YukiHookAPI`。 + +你可以修改为你自己的文案。 + +### isEnable - field + +```kotlin:no-line-numbers +var isEnable: Boolean +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 是否启用调试日志的输出功能。 + +关闭后将会停用 `YukiHookAPI` 对全部日志的输出。 + +但是不影响当你手动调用下面这些方法输出日志。 + +`debug`、`info`、`warn`、`error`。 + +当 `isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。 + +### isRecord - field + +```kotlin:no-line-numbers +var isRecord: Boolean +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 是否启用调试日志的记录功能。 + +开启后将会在内存中记录全部可用的日志和异常堆栈。 + +需要同时启用 [isEnable](#isenable-field) 才能有效。 + +::: danger + +过量的日志可能会导致宿主运行缓慢或造成频繁 GC。 + +::: + +开启后你可以调用 [YLog.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YLog.contents](#contents-field) 获取实时日志文件。 + +### elements - method + +```kotlin:no-line-numbers +fun elements(vararg item: Int) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 自定义调试日志对外显示的元素。 + +只对日志记录和 (Xposed) 宿主环境的日志生效。 + +日志元素的排列将按照你在 `item` 中设置的顺序进行显示。 + +你还可以留空 `item` 以不显示除日志内容外的全部元素。 + +可用的元素有:`TAG`、`PRIORITY`、`PACKAGE_NAME`、`USER_ID`。 + +**功能示例** + +打印的日志样式将按照你设置的排列顺序和元素内容进行。 + +> 示例如下 + +```kotlin +elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID) +``` + +以上内容定义的日志将显示为如下样式。 + +> 示例如下 + +```:no-line-numbers +[YukiHookAPI][D][com.demo.test][999]--> This is a log +``` + +如果我们调整元素顺序以及减少个数,那么结果又会不一样。 + +> 示例如下 + +```kotlin +elements(PACKAGE_NAME, USER_ID, PRIORITY) +``` + +以上内容定义的日志将显示为如下样式。 + +> 示例如下 + +```:no-line-numbers +[com.demo.test][999][D]--> This is a log +``` + +## debug - method + +```kotlin:no-line-numbers +fun debug(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 打印 Debug 级别 Log。 + +## info - method + +```kotlin:no-line-numbers +fun info(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 打印 Info 级别 Log。 + +## warn - method + +```kotlin:no-line-numbers +fun warn(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 打印 Warn 级别 Log。 + +## error - method + +```kotlin:no-line-numbers +fun error(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 打印 Error 级别 Log。 + +## EnvType - class + +```kotlin:no-line-numbers +enum class EnvType +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 需要打印的日志环境类型。 决定于模块与 (Xposed) 宿主环境使用的打印方式。 @@ -44,22 +406,12 @@ LOGD **Change Records** -`v1.1.0` `added` +`v1.2.0` `added` **Function Illustrate** > 仅使用 `android.util.Log`。 -

XPOSEDBRIDGE - enum

- -**Change Records** - -`v1.1.0` `added` - -`v1.1.5` `deprecated` - -请迁移到 `XPOSED_ENVIRONMENT` - ### XPOSED_ENVIRONMENT - enum ```kotlin:no-line-numbers @@ -68,7 +420,7 @@ XPOSED_ENVIRONMENT **Change Records** -`v1.1.5` `added` +`v1.2.0` `added` **Function Illustrate** @@ -88,7 +440,7 @@ SCOPE **Change Records** -`v1.1.0` `added` +`v1.2.0` `added` **Function Illustrate** @@ -106,7 +458,7 @@ BOTH **Change Records** -`v1.1.0` `added` +`v1.2.0` `added` **Function Illustrate** @@ -116,433 +468,12 @@ BOTH 模块环境仅使用 `LOGD`。 -## YukiLoggerData - class - -```kotlin:no-line-numbers -data class YukiLoggerData internal constructor( - var timestamp: Long, - var time: String, - var tag: String, - var priority: String, - var packageName: String, - var userId: Int, - var msg: String, - var throwable: Throwable? -) : Serializable -``` - -**Change Records** - -`v1.1.2` `added` - -`v1.1.4` `modified` - -实现 `Serializable` 接口并标识为 `data class` - -**Function Illustrate** - -> 调试日志数据实现类。 - -## YukiHookLogger - object - -```kotlin:no-line-numbers -object YukiHookLogger -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 调试日志实现类。 - -### inMemoryData - field - -```kotlin:no-line-numbers -val inMemoryData: ArrayList -``` - -**Change Records** - -`v1.1.2` `added` - -`v1.1.4` `modified` - -类型由 `HashSet` 修改为 `ArrayList` - -**Function Illustrate** - -> 当前全部已记录的日志数据。 - -::: danger - -获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 - -::: - -### contents - field - -```kotlin:no-line-numbers -val contents: String -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 获取当前日志文件内容。 - -如果当前没有已记录的日志会返回空字符串。 - -::: danger - -获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 - -::: - -### contents - method - -```kotlin:no-line-numbers -fun contents(data: ArrayList): String -``` - -**Change Records** - -`v1.1.5` `added` - -**Function Illustrate** - -> 获取、格式化当前日志文件内容。 - -如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。 - -::: danger - -获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 - -::: - -### clear - method - -```kotlin:no-line-numbers -fun clear() -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 清除全部已记录的日志。 - -::: danger - -获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。 - -::: - -你也可以直接获取 [inMemoryData](#inmemorydata-field) 来清除。 - -### saveToFile - method - -```kotlin:no-line-numbers -fun saveToFile(fileName: String, data: ArrayList) -``` - -**Change Records** - -`v1.1.0` `added` - -`v1.1.5` `modified` - -新增 `data` 参数 - -**Function Illustrate** - -> 保存当前日志到文件。 - -若当前未开启 `Configs.isRecord` 或记录为空则不会进行任何操作。 - -日志文件会追加到 `fileName` 的文件结尾,若文件不存在会自动创建。 - -::: danger - -文件读写权限取决于当前宿主、模块已获取的权限。 - -::: - -### Configs - object - -```kotlin:no-line-numbers -object Configs -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 配置 `YukiHookLogger`。 - -#### TAG - field - -```kotlin:no-line-numbers -const val TAG: Int -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 标签。 - -#### PRIORITY - field - -```kotlin:no-line-numbers -const val PRIORITY: Int -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 优先级。 - -#### PACKAGE_NAME - field - -```kotlin:no-line-numbers -const val PACKAGE_NAME: Int -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 当前宿主的包名。 - -#### USER_ID - field - -```kotlin:no-line-numbers -const val USER_ID: Int -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 当前宿主的用户 ID (主用户不显示)。 - -#### isEnable - field - -```kotlin:no-line-numbers -var isEnable: Boolean -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 是否启用调试日志的输出功能。 - -关闭后将会停用 `YukiHookAPI` 对全部日志的输出。 - -但是不影响当你手动调用下面这些方法输出日志。 - -`loggerD`、`loggerI`、`loggerW`、`loggerE`。 - -当 `isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。 - -#### isRecord - field - -```kotlin:no-line-numbers -var isRecord: Boolean -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 是否启用调试日志的记录功能。 - -开启后将会在内存中记录全部可用的日志和异常堆栈。 - -需要同时启用 [isEnable](#isenable-field) 才能有效。 - -::: danger - -过量的日志可能会导致宿主运行缓慢或造成频繁 GC。 - -::: - -开启后你可以调用 [YukiHookLogger.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YukiHookLogger.contents](#contents-field) 获取实时日志文件。 - -#### tag - field - -```kotlin:no-line-numbers -var tag: String -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 这是一个调试日志的全局标识。 - -默认文案为 `YukiHookAPI`。 - -你可以修改为你自己的文案。 - -#### elements - method - -```kotlin:no-line-numbers -fun elements(vararg item: Int) -``` - -**Change Records** - -`v1.1.0` `added` - -**Function Illustrate** - -> 自定义调试日志对外显示的元素。 - -只对日志记录和 (Xposed) 宿主环境的日志生效。 - -日志元素的排列将按照你在 `item` 中设置的顺序进行显示。 - -你还可以留空 `item` 以不显示除日志内容外的全部元素。 - -可用的元素有:`TAG`、`PRIORITY`、`PACKAGE_NAME`、`USER_ID`。 - -**Function Example** - -打印的日志样式将按照你设置的排列顺序和元素内容进行。 - -> The following example - -```kotlin -elements(TAG, PRIORITY, PACKAGE_NAME, USER_ID) -``` - -以上内容定义的日志将显示为如下样式。 - -> The following example - -```:no-line-numbers -[YukiHookAPI][D][com.demo.test][999]--> This is a log -``` - -如果我们调整元素顺序以及减少个数,那么结果又会不一样。 - -> The following example - -```kotlin -elements(PACKAGE_NAME, USER_ID, PRIORITY) -``` - -以上内容定义的日志将显示为如下样式。 - -> The following example - -```:no-line-numbers -[com.demo.test][999][D]--> This is a log -``` - -## loggerD - method - -```kotlin:no-line-numbers -fun loggerD(tag: String, msg: String, type: LoggerType) -``` +

LoggerFactory - kt

**Change Records** `v1.0` `first` -`v1.1.0` `modified` +`v1.2.0` `deprecated` -新增 `type` 参数 - -**Function Illustrate** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerI - method - -```kotlin:no-line-numbers -fun loggerI(tag: String, msg: String, type: LoggerType) -``` - -**Change Records** - -`v1.0` `first` - -`v1.1.0` `modified` - -新增 `type` 参数 - -**Function Illustrate** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerW - method - -```kotlin:no-line-numbers -fun loggerW(tag: String, msg: String, type: LoggerType) -``` - -**Change Records** - -`v1.0` `first` - -`v1.1.0` `modified` - -新增 `type` 参数 - -**Function Illustrate** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerE - method - -```kotlin:no-line-numbers -fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType) -``` - -**Change Records** - -`v1.0` `first` - -`v1.1.0` `modified` - -新增 `type` 参数 - -**Function Illustrate** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 \ No newline at end of file +请迁移到 `YLog` \ No newline at end of file diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md new file mode 100644 index 00000000..e282b260 --- /dev/null +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md @@ -0,0 +1,34 @@ +--- +pageClass: code-page +--- + +::: warning + +The English translation of this page has not been completed, you are welcome to contribute translations to us. + +You can use the **Chrome Translation Plugin** to translate entire pages for reference. + +::: + +# YLogData - class + +```kotlin:no-line-numbers +data class YLogData internal constructor( + var timestamp: Long, + var time: String, + var tag: String, + var priority: String, + var packageName: String, + var userId: Int, + var msg: String, + var throwable: Throwable? +) : Serializable +``` + +**Change Records** + +`v1.2.0` `added` + +**Function Illustrate** + +> 调试日志数据实现类。 \ No newline at end of file diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md index ec8b038e..529021d9 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md @@ -259,7 +259,7 @@ fun checkingVersionEquals(priority: ChannelPriority?, result: (Boolean) -> Unit) ### obtainLoggerInMemoryData - method ```kotlin:no-line-numbers -fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList) -> Unit) +fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (List) -> Unit) ``` **Change Records** @@ -272,13 +272,13 @@ fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList 获取模块与宿主之间的 `ArrayList` 数据。 +> 获取模块与宿主之间的 `List` 数据。 由于模块与宿主处于不同的进程,我们可以使用数据通讯桥访问各自的调试日志数据。 ::: danger -模块与宿主必须启用 [YukiHookLogger.Configs.isRecord](../../log/LoggerFactory#isrecord-field) 才能获取到调试日志数据。 +模块与宿主必须启用 [YLog.Configs.isRecord](../../log/YLog#isrecord-field) 才能获取到调试日志数据。 由于 Android 限制了数据传输大小的最大值,如果调试日志过多将会自动进行分段发送,数据越大速度越慢。 diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.md index 5ef39db9..d5fdb12b 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/YukiHookAPI.md @@ -369,7 +369,7 @@ object Configs ### debugLog - method ```kotlin:no-line-numbers -inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) +inline fun debugLog(initiate: YLog.Configs.() -> Unit) ``` **变更记录** @@ -378,7 +378,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) **功能描述** -> 配置 `YukiHookLogger.Configs` 相关参数。 +> 配置 `YLog.Configs` 相关参数。

debugTag - field

@@ -388,7 +388,7 @@ inline fun debugLog(initiate: YukiHookLogger.Configs.() -> Unit) `v1.1.0` `作废` -请迁移到 `YukiHookLogger.Configs.tag` +请迁移到 `YLog.Configs.tag` ### isDebug - field @@ -414,7 +414,7 @@ var isDebug: Boolean `v1.1.0` `作废` -请迁移到 `YukiHookLogger.Configs.isEnable` +请迁移到 `YLog.Configs.isEnable`

isEnableModulePrefsCache - field

@@ -620,14 +620,14 @@ object HookEntry : IYukiHookXposedInit { object HookEntry : IYukiHookXposedInit { override fun onInit() { - YukiHookLogger.Configs.tag = "YukiHookAPI" - YukiHookLogger.Configs.isEnable = true - YukiHookLogger.Configs.isRecord = false - YukiHookLogger.Configs.elements( - YukiHookLogger.Configs.TAG, - YukiHookLogger.Configs.PRIORITY, - YukiHookLogger.Configs.PACKAGE_NAME, - YukiHookLogger.Configs.USER_ID + YLog.Configs.tag = "YukiHookAPI" + YLog.Configs.isEnable = true + YLog.Configs.isRecord = false + YLog.Configs.elements( + YLog.Configs.TAG, + YLog.Configs.PRIORITY, + YLog.Configs.PACKAGE_NAME, + YLog.Configs.USER_ID ) YukiHookAPI.Configs.isDebug = BuildConfig.DEBUG YukiHookAPI.Configs.isEnableModuleAppResourcesCache = true diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/YLog.md similarity index 58% rename from docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md rename to docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/YLog.md index 4b18e3bb..0716b436 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/LoggerFactory.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/YLog.md @@ -2,166 +2,29 @@ pageClass: code-page --- -# LoggerFactory - kt - -**变更记录** - -`v1.0` `添加` - -**功能描述** - -> 这是 `YukiHookAPI` 的日志封装类,可实现同时向 `Logcat` 和 (Xposed) 宿主环境打印日志的功能。 - -## LoggerType - class +# YLog - object ```kotlin:no-line-numbers -enum class LoggerType +object YLog ``` **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** -> 需要打印的日志类型。 +> 全局 Log 管理类。 -决定于模块与 (Xposed) 宿主环境使用的打印方式。 - -### LOGD - enum +## inMemoryData - field ```kotlin:no-line-numbers -LOGD +val inMemoryData: MutableList ``` **变更记录** -`v1.1.0` `新增` - -**功能描述** - -> 仅使用 `android.util.Log`。 - -

XPOSEDBRIDGE - enum

- -**变更记录** - -`v1.1.0` `新增` - -`v1.1.5` `作废` - -请迁移到 `XPOSED_ENVIRONMENT` - -### XPOSED_ENVIRONMENT - enum - -```kotlin:no-line-numbers -XPOSED_ENVIRONMENT -``` - -**变更记录** - -`v1.1.5` `新增` - -**功能描述** - -> 仅在 (Xposed) 宿主环境使用。 - -::: danger - -只能在 (Xposed) 宿主环境中使用,模块环境将不生效。 - -::: - -### SCOPE - enum - -```kotlin:no-line-numbers -SCOPE -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 分区使用。 - -(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`。 - -模块环境仅使用 `LOGD`。 - -### BOTH - enum - -```kotlin:no-line-numbers -BOTH -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 同时使用。 - -(Xposed) 宿主环境使用 `LOGD` 与 `XPOSED_ENVIRONMENT`。 - -模块环境仅使用 `LOGD`。 - -## YukiLoggerData - class - -```kotlin:no-line-numbers -data class YukiLoggerData internal constructor( - var timestamp: Long, - var time: String, - var tag: String, - var priority: String, - var packageName: String, - var userId: Int, - var msg: String, - var throwable: Throwable? -) : Serializable -``` - -**变更记录** - -`v1.1.2` `新增` - -`v1.1.4` `修改` - -实现 `Serializable` 接口并标识为 `data class` - -**功能描述** - -> 调试日志数据实现类。 - -## YukiHookLogger - object - -```kotlin:no-line-numbers -object YukiHookLogger -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 调试日志实现类。 - -### inMemoryData - field - -```kotlin:no-line-numbers -val inMemoryData: ArrayList -``` - -**变更记录** - -`v1.1.2` `新增` - -`v1.1.4` `修改` - -类型由 `HashSet` 修改为 `ArrayList` +`v1.2.0` `新增` **功能描述** @@ -173,7 +36,7 @@ val inMemoryData: ArrayList ::: -### contents - field +## contents - field ```kotlin:no-line-numbers val contents: String @@ -181,7 +44,7 @@ val contents: String **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** @@ -195,15 +58,15 @@ val contents: String ::: -### contents - method +## contents - method ```kotlin:no-line-numbers -fun contents(data: ArrayList): String +fun contents(data: List): String ``` **变更记录** -`v1.1.5` `新增` +`v1.2.0` `新增` **功能描述** @@ -217,7 +80,7 @@ fun contents(data: ArrayList): String ::: -### clear - method +## clear - method ```kotlin:no-line-numbers fun clear() @@ -225,7 +88,7 @@ fun clear() **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** @@ -239,19 +102,15 @@ fun clear() ::: -### saveToFile - method +## saveToFile - method ```kotlin:no-line-numbers -fun saveToFile(fileName: String, data: ArrayList) +fun saveToFile(fileName: String, data: List) ``` **变更记录** -`v1.1.0` `新增` - -`v1.1.5` `修改` - -新增 `data` 参数 +`v1.2.0` `新增` **功能描述** @@ -267,7 +126,7 @@ fun saveToFile(fileName: String, data: ArrayList) ::: -### Configs - object +## Configs - object ```kotlin:no-line-numbers object Configs @@ -275,13 +134,13 @@ object Configs **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** > 配置 `YukiHookLogger`。 -#### TAG - field +### TAG - field ```kotlin:no-line-numbers const val TAG: Int @@ -289,13 +148,13 @@ const val TAG: Int **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** > 标签。 -#### PRIORITY - field +### PRIORITY - field ```kotlin:no-line-numbers const val PRIORITY: Int @@ -303,13 +162,13 @@ const val PRIORITY: Int **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** > 优先级。 -#### PACKAGE_NAME - field +### PACKAGE_NAME - field ```kotlin:no-line-numbers const val PACKAGE_NAME: Int @@ -317,13 +176,13 @@ const val PACKAGE_NAME: Int **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** > 当前宿主的包名。 -#### USER_ID - field +### USER_ID - field ```kotlin:no-line-numbers const val USER_ID: Int @@ -331,13 +190,31 @@ const val USER_ID: Int **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** > 当前宿主的用户 ID (主用户不显示)。 -#### isEnable - field +### tag - field + +```kotlin:no-line-numbers +var tag: String +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 这是一个调试日志的全局标识。 + +默认文案为 `YukiHookAPI`。 + +你可以修改为你自己的文案。 + +### isEnable - field ```kotlin:no-line-numbers var isEnable: Boolean @@ -345,7 +222,7 @@ var isEnable: Boolean **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** @@ -355,11 +232,11 @@ var isEnable: Boolean 但是不影响当你手动调用下面这些方法输出日志。 -`loggerD`、`loggerI`、`loggerW`、`loggerE`。 +`debug`、`info`、`warn`、`error`。 当 `isEnable` 关闭后 `YukiHookAPI.Configs.isDebug` 也将同时关闭。 -#### isRecord - field +### isRecord - field ```kotlin:no-line-numbers var isRecord: Boolean @@ -367,7 +244,7 @@ var isRecord: Boolean **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** @@ -383,27 +260,9 @@ var isRecord: Boolean ::: -开启后你可以调用 [YukiHookLogger.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YukiHookLogger.contents](#contents-field) 获取实时日志文件。 +开启后你可以调用 [YLog.saveToFile](#savetofile-method) 实时保存日志到文件或使用 [YLog.contents](#contents-field) 获取实时日志文件。 -#### tag - field - -```kotlin:no-line-numbers -var tag: String -``` - -**变更记录** - -`v1.1.0` `新增` - -**功能描述** - -> 这是一个调试日志的全局标识。 - -默认文案为 `YukiHookAPI`。 - -你可以修改为你自己的文案。 - -#### elements - method +### elements - method ```kotlin:no-line-numbers fun elements(vararg item: Int) @@ -411,7 +270,7 @@ fun elements(vararg item: Int) **变更记录** -`v1.1.0` `新增` +`v1.2.0` `新增` **功能描述** @@ -459,82 +318,154 @@ elements(PACKAGE_NAME, USER_ID, PRIORITY) [com.demo.test][999][D]--> This is a log ``` -## loggerD - method +## debug - method ```kotlin:no-line-numbers -fun loggerD(tag: String, msg: String, type: LoggerType) +fun debug(msg: String, e: Throwable?, tag: String, env: EnvType) ``` **变更记录** +`v1.2.0` `新增` + +**功能描述** + +> 打印 Debug 级别 Log。 + +## info - method + +```kotlin:no-line-numbers +fun info(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 打印 Info 级别 Log。 + +## warn - method + +```kotlin:no-line-numbers +fun warn(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 打印 Warn 级别 Log。 + +## error - method + +```kotlin:no-line-numbers +fun error(msg: String, e: Throwable?, tag: String, env: EnvType) +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 打印 Error 级别 Log。 + +## EnvType - class + +```kotlin:no-line-numbers +enum class EnvType +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 需要打印的日志环境类型。 + +决定于模块与 (Xposed) 宿主环境使用的打印方式。 + +### LOGD - enum + +```kotlin:no-line-numbers +LOGD +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 仅使用 `android.util.Log`。 + +### XPOSED_ENVIRONMENT - enum + +```kotlin:no-line-numbers +XPOSED_ENVIRONMENT +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 仅在 (Xposed) 宿主环境使用。 + +::: danger + +只能在 (Xposed) 宿主环境中使用,模块环境将不生效。 + +::: + +### SCOPE - enum + +```kotlin:no-line-numbers +SCOPE +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 分区使用。 + +(Xposed) 宿主环境仅使用 `XPOSED_ENVIRONMENT`。 + +模块环境仅使用 `LOGD`。 + +### BOTH - enum + +```kotlin:no-line-numbers +BOTH +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 同时使用。 + +(Xposed) 宿主环境使用 `LOGD` 与 `XPOSED_ENVIRONMENT`。 + +模块环境仅使用 `LOGD`。 + +

LoggerFactory - kt

+ +**变更记录** + `v1.0` `添加` -`v1.1.0` `修改` +`v1.2.0` `作废` -新增 `type` 参数 - -**功能描述** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `D`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerI - method - -```kotlin:no-line-numbers -fun loggerI(tag: String, msg: String, type: LoggerType) -``` - -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `修改` - -新增 `type` 参数 - -**功能描述** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `I`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerW - method - -```kotlin:no-line-numbers -fun loggerW(tag: String, msg: String, type: LoggerType) -``` - -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `修改` - -新增 `type` 参数 - -**功能描述** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `W`。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 - -## loggerE - method - -```kotlin:no-line-numbers -fun loggerE(tag: String, msg: String, e: Throwable?, type: LoggerType) -``` - -**变更记录** - -`v1.0` `添加` - -`v1.1.0` `修改` - -新增 `type` 参数 - -**功能描述** - -> 向 `Logcat` 和 (Xposed) 宿主环境打印日志,级别 `E`,可携带 `e` 异常信息,将打印异常堆栈。 - -`tag` 的默认参数为 `YukiHookAPI.Configs.debugTag`,你可以进行自定义。 \ No newline at end of file +请迁移到 `YLog` \ No newline at end of file diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md new file mode 100644 index 00000000..2bdd6a14 --- /dev/null +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/log/data/YLogData.md @@ -0,0 +1,26 @@ +--- +pageClass: code-page +--- + +# YLogData - class + +```kotlin:no-line-numbers +data class YLogData internal constructor( + var timestamp: Long, + var time: String, + var tag: String, + var priority: String, + var packageName: String, + var userId: Int, + var msg: String, + var throwable: Throwable? +) : Serializable +``` + +**变更记录** + +`v1.2.0` `新增` + +**功能描述** + +> 调试日志数据实现类。 \ No newline at end of file diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md index 0975fe7d..34b68098 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/channel/YukiHookDataChannel.md @@ -251,7 +251,7 @@ fun checkingVersionEquals(priority: ChannelPriority?, result: (Boolean) -> Unit) ### obtainLoggerInMemoryData - method ```kotlin:no-line-numbers -fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList) -> Unit) +fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (List) -> Unit) ``` **变更记录** @@ -264,13 +264,13 @@ fun obtainLoggerInMemoryData(priority: ChannelPriority?, result: (ArrayList 获取模块与宿主之间的 `ArrayList` 数据。 +> 获取模块与宿主之间的 `List` 数据。 由于模块与宿主处于不同的进程,我们可以使用数据通讯桥访问各自的调试日志数据。 ::: danger -模块与宿主必须启用 [YukiHookLogger.Configs.isRecord](../../log/LoggerFactory#isrecord-field) 才能获取到调试日志数据。 +模块与宿主必须启用 [YLog.Configs.isRecord](../../log/YLog#isrecord-field) 才能获取到调试日志数据。 由于 Android 限制了数据传输大小的最大值,如果调试日志过多将会自动进行分段发送,数据越大速度越慢。