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>
```kotlin:no-line-numbers
@@ -218,13 +240,17 @@ fun clear()
### saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun saveToFile(fileName: String)
fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
```
**Change Records**
`v1.1.0` `added`
`v1.1.5` `modified`
新增 `data` 参数
**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>
```kotlin:no-line-numbers
@@ -210,13 +232,17 @@ fun clear()
### saveToFile <span class="symbol">- method</span>
```kotlin:no-line-numbers
fun saveToFile(fileName: String)
fun saveToFile(fileName: String, data: ArrayList<YukiLoggerData>)
```
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `修改`
新增 `data` 参数
**功能描述**
> 保存当前日志到文件。

View File

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