Modify add contents function and add "data" param in saveToFile in LoggerFactory

This commit is contained in:
2023-01-02 20:36:34 +08:00
parent e27d267f95
commit 67839a9ebb
3 changed files with 77 additions and 14 deletions

View File

@@ -193,6 +193,28 @@ val contents: String
::: :::
### contents <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun contents(data: ArrayList<YukiLoggerData>): String
```
**Change Records**
`v1.1.5` `added`
**Function Illustrate**
> 获取、格式化当前日志文件内容。
如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
### clear <span class="symbol">- method</span> ### clear <span class="symbol">- method</span>
```kotlin:no-line-numbers ```kotlin:no-line-numbers
@@ -218,13 +240,17 @@ fun clear()
### saveToFile <span class="symbol">- method</span> ### saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers ```kotlin:no-line-numbers
fun saveToFile(fileName: String) fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
``` ```
**Change Records** **Change Records**
`v1.1.0` `added` `v1.1.0` `added`
`v1.1.5` `modified`
新增 `data` 参数
**Function Illustrate** **Function Illustrate**
> 保存当前日志到文件。 > 保存当前日志到文件。

View File

@@ -185,6 +185,28 @@ val contents: String
::: :::
### contents <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun contents(data: ArrayList<YukiLoggerData>): String
```
**变更记录**
`v1.1.5` `新增`
**功能描述**
> 获取、格式化当前日志文件内容。
如果当前没有已记录的日志 (`data` 为空) 会返回空字符串。
::: danger
获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的。
:::
### clear <span class="symbol">- method</span> ### clear <span class="symbol">- method</span>
```kotlin:no-line-numbers ```kotlin:no-line-numbers
@@ -210,13 +232,17 @@ fun clear()
### saveToFile <span class="symbol">- method</span> ### saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers ```kotlin:no-line-numbers
fun saveToFile(fileName: String) fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
``` ```
**变更记录** **变更记录**
`v1.1.0` `新增` `v1.1.0` `新增`
`v1.1.5` `修改`
新增 `data` 参数
**功能描述** **功能描述**
> 保存当前日志到文件。 > 保存当前日志到文件。

View File

@@ -147,18 +147,28 @@ object YukiHookLogger {
* - ❗获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的 * - ❗获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的
* @return [String] * @return [String]
*/ */
val contents: String val contents get() = contents()
get() {
var content = "" /**
inMemoryData.takeIf { it.isNotEmpty() }?.forEach { * 获取、格式化当前日志文件内容
content += "${it.head}$it\n" *
it.throwable?.also { e -> * 如果当前没有已记录的日志 ([data] 为空) 会返回空字符串
content += "${it.head}Dump stack trace for \"${e.current().name}\":\n" *
content += e.toStackTrace() * - ❗获取到的日志数据在 Hook APP (宿主) 及模块进程中是相互隔离的
} * @param data 日志数据 - 默认为 [inMemoryData]
* @return [String]
*/
fun contents(data: ArrayList<YukiLoggerData> = inMemoryData): String {
var content = ""
data.takeIf { it.isNotEmpty() }?.forEach {
content += "${it.head}$it\n"
it.throwable?.also { e ->
content += "${it.head}Dump stack trace for \"${e.current().name}\":\n"
content += e.toStackTrace()
} }
return content
} }
return content
}
/** /**
* 清除全部已记录的日志 * 清除全部已记录的日志
@@ -178,10 +188,11 @@ object YukiHookLogger {
* *
* - ❗文件读写权限取决于当前宿主、模块已获取的权限 * - ❗文件读写权限取决于当前宿主、模块已获取的权限
* @param fileName 完整文件名 - 例如 /data/data/.../files/xxx.log * @param fileName 完整文件名 - 例如 /data/data/.../files/xxx.log
* @param data 日志数据 - 默认为 [inMemoryData]
* @throws ErrnoException 如果目标路径不可写 * @throws ErrnoException 如果目标路径不可写
*/ */
fun saveToFile(fileName: String) { fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData> = inMemoryData) {
if (inMemoryData.isNotEmpty()) File(fileName).appendText(contents) if (data.isNotEmpty()) File(fileName).appendText(contents(data))
} }
/** /**