docs: update logger

This commit is contained in:
2023-09-28 00:52:55 +08:00
parent dbe451d29c
commit fe2f5c802e
2 changed files with 70 additions and 70 deletions

View File

@@ -4,26 +4,26 @@
## Normal Logs
You can call `loggerD`, `loggerI`, `loggerW` to print normal logs to the console.
You can call `YLog.debug`, `YLog.info`, `YLog.warn` to print normal logs to the console.
The usage method is as follows.
> The following example
```kotlin
loggerD(msg = "This is a log")
YLog.debug(msg = "This is a log")
```
At this ponit, `YukiHookAPI` will call `android.util.Log` and log function in (Xposed) Host environment to print this log at the same time.
The default `TAG` of the log is the value you set in `YukiHookLogger.Configs.tag`.
The default `TAG` of the log is the value you set in `YLog.Configs.tag`.
You can also customize this value dynamically, but it is not recommended to modify `TAG` easily to prevent logs from being filtered.
> The following example
```kotlin
loggerD(tag = "YukiHookAPI", msg = "This is a log")
YLog.debug(tag = "YukiHookAPI", msg = "This is a log")
```
The printed result is as shown below.
@@ -31,21 +31,21 @@ The printed result is as shown below.
> The following example
```:no-line-numbers
[YukiHookAPI][D][host package name]--> This is a log
[YukiHookAPI][D][host package name] This is a log
```
You can also use `LoggerType` to customize the type of log printing.
You can also use `YLog.EnvType` to customize the type of log printing.
You can choose to use `android.util.Log` or the log function in the (Xposed) Host environment to print logs.
The default type is `LoggerType.BOTH`, which means that both methods are used to print logs.
The default type is `YLog.EnvType.BOTH`, which means that both methods are used to print logs.
For example we only use `android.util.Log` to print logs.
> The following example
```kotlin
loggerD(tag = "YukiHookAPI", msg = "This is a log", type = LoggerType.LOGD)
YLog.debug(tag = "YukiHookAPI", msg = "This is a log", env = YLog.EnvType.LOGD)
```
Or just use the log function that in the (Xposed) Host environment to print the log, this method can only be used in the (Xposed) Host environment.
@@ -53,7 +53,7 @@ Or just use the log function that in the (Xposed) Host environment to print the
> The following example
```kotlin
loggerD(tag = "YukiHookAPI", msg = "This is a log", type = LoggerType.XPOSED_ENVIRONMENT)
YLog.debug(tag = "YukiHookAPI", msg = "This is a log", env = YLog.EnvType.XPOSED_ENVIRONMENT)
```
If you want to intelligently distinguish the (Xposed) Host environment from the Module environment, you can write it in the following form.
@@ -61,27 +61,27 @@ If you want to intelligently distinguish the (Xposed) Host environment from the
> The following example
```kotlin
loggerD(tag = "YukiHookAPI", msg = "This is a log", type = LoggerType.SCOPE)
YLog.debug(tag = "YukiHookAPI", msg = "This is a log", env = YLog.EnvType.SCOPE)
```
In this way, the API will intelligently select the specified method type to print this log in different environments.
::: tip
For more functions, please refer to [loggerD](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#loggerd-method), [loggerI](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#loggeri-method) and [loggerW](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#loggerw-method) methods.
For more functions, please refer to [YLog.debug](../public/com/highcapable/yukihookapi/hook/log/YLog#debug-method), [YLog.info](../public/com/highcapable/yukihookapi/hook/log/YLog#info-method) and [YLog.warn](../public/com/highcapable/yukihookapi/hook/log/YLog#warn-method) methods.
:::
## Error Logs
You can call `loggerE` to print `E` level logs to the console.
You can call `YLog.error` to print `E` level logs to the console.
The usage method is as follows.
> The following example
```kotlin
loggerE(msg = "This is an error")
YLog.error(msg = "This is an error")
```
The error log is the highest level, regardless of whether you have filtered only `E` level logs.
@@ -92,7 +92,7 @@ For error-level logging, you can also append an exception stack.
// Assume this is the exception that was thrown
val throwable = Throwable(...)
// Print log
loggerE(msg = "This is an error", e = throwable)
YLog.error(msg = "This is an error", e = throwable)
```
The printed result is as shown below.
@@ -100,7 +100,7 @@ The printed result is as shown below.
> The following example
```:no-line-numbers
[YukiHookAPI][E][host package name]--> This is an error
[YukiHookAPI][E][host package name] This is an error
```
At the same time, the log will help you print the entire exception stack.
@@ -109,25 +109,25 @@ At the same time, the log will help you print the entire exception stack.
```:no-line-numbers
java.lang.Throwable
at com.demo.Test.<init>(...)
at com.demo.Test.doTask(...)
at com.demo.Test.stop(...)
at com.demo.Test.init(...)
at a.a.a(...)
... 3 more
at com.demo.Test.<init>(...)
at com.demo.Test.doTask(...)
at com.demo.Test.stop(...)
at com.demo.Test.init(...)
at a.a.a(...)
... 3 more
```
In the error log, you can also use `LoggerType` to specify the method type currently used to print the log.
In the error log, you can also use `YLog.EnvType` to specify the method type currently used to print the log.
::: tip
For more functions, please refer to the [loggerE](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#loggere-method) method.
For more functions, please refer to the [YLog.error](../public/com/highcapable/yukihookapi/hook/log/YLog#error-method) method.
:::
## Save Logs and Custom Elements
You can save all currently printed logs directly to a file using the `YukiHookLogger.saveToFile` method.
You can save all currently printed logs directly to a file using the `YLog.saveToFile` method.
> The following example
@@ -135,25 +135,25 @@ You can save all currently printed logs directly to a file using the `YukiHookLo
// Please note
// The saved file path must have read and write permissions
// Otherwise an exception will be thrown
YukiHookLogger.saveToFile("/sdcard/Documents/debug_log.log")
YLog.saveToFile("/sdcard/Documents/debug_log.log")
```
You can also use `YukiHookLogger.contents` to get all the log file contents that have been printed so far.
You can also use `YLog.contents` to get all the log file contents that have been printed so far.
> The following example
```kotlin
// Get the contents of all log files that have been printed so far
val fileContent = YukiHookLogger.contents
val fileContent = YLog.contents
```
If you need an array of real-time log data structures, you can directly get the content of `YukiHookLogger.inMemoryData`.
If you need an array of real-time log data structures, you can directly get the content of `YLog.inMemoryData`.
> The following example
```kotlin
// Get the currently printed real-time log data structure array
YukiHookLogger.inMemoryData.forEach {
YLog.inMemoryData.forEach {
it.timestamp // Get timestamp
it.time // Get UTC time
it.priority // Get priority
@@ -169,19 +169,19 @@ If you want to format or save the obtained custom log data to a file, you only n
```kotlin
// Assume this is the custom log data you get
val data: ArrayList<YukiLoggerData>
val data: List<YLogData>
// Format log data to String
val dataString = YukiHookLogger.contents(data)
val dataString = YLog.contents(data)
// Save log data to file
// Please note
// The saved file path must have read and write permissions
// Otherwise an exception will be thrown
YukiHookLogger.saveToFile("/sdcard/Documents/debug_log.log", data)
YLog.saveToFile("/sdcard/Documents/debug_log.log", data)
```
::: danger
You need to enable **YukiHookLogger.Configs.isRecord** to get the contents of **YukiHookLogger.inMemoryData**.
You need to enable **YLog.Configs.isRecord** to get the contents of **YLog.inMemoryData**.
The obtained log data is isolated from each other in the Host App and the Module App's process.
@@ -193,7 +193,7 @@ If you only want to get log data in real time through Module App or Host App, Pl
:::
You can also use `YukiHookLogger.Configs.elements` to customize the elements that debug logs display externally.
You can also use `YLog.Configs.elements` to customize the elements that debug logs display externally.
This function requires `YukiHookAPI.Configs` to be configured in `onInit` of the Hook entry class.
@@ -211,6 +211,6 @@ override fun onInit() = configs {
::: tip
For more functions, please refer to [YukiHookLogger.inMemoryData](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#inmemorydata-field), [YukiHookLogger.contents](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#contents-field), [YukiHookLogger.contents](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#contents-method), [YukiHookLogger.saveToFile](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#savetofile-method) methods and [YukiHookLogger.Configs](../public/com/highcapable/yukihookapi/hook/log/LoggerFactory#configs-object).
For more functions, please refer to [YLog.inMemoryData](../public/com/highcapable/yukihookapi/hook/log/YLog#inmemorydata-field), [YLog.contents](../public/com/highcapable/yukihookapi/hook/log/YLog#contents-field), [YLog.contents](../public/com/highcapable/yukihookapi/hook/log/YLog#contents-method), [YLog.saveToFile](../public/com/highcapable/yukihookapi/hook/log/YLog#savetofile-method) methods and [YLog.Configs](../public/com/highcapable/yukihookapi/hook/log/YLog#configs-object).
:::