# Log | 日志助手

## `fmt` 日志格式化函数

一些日志格式化工具会取代 `console.log` 的原生功能，提供更丰富的日志输出格式，但这会扰乱调用栈，导致很难通过调用栈来定位问题。

为了让更好的日志显示与调用栈信息共存，所以可以纯格式化工具 `fmt()` 来处理日志输入

### 使用

```ts
import { fmt } from "fzz"

console.log(...fmt("[MoonvyWeb|v2.0.5]"))

// 为了兼容浏览器与终端，需要使用 `...` 展开参数
// 因为浏览器的样式必须有多个参数
```

### 格式

`fmt` 的主旨是用一下常用的符号来对日志文本进行格式化，尽可能的达到即使没有渲染格式，纯文本
的日志也可以有不错的显示效果

| 格式         | 示例                     |
| ------------ | ------------------------ |
| 显著标题     | `[MoonvyWeb]`            |
| 多级显著标题 | `[MoonvyWeb\|v2.0]`      |
| 标题         | `<ServerAPI>`            |
| 多级标题     | `<ServerAPI\|File\|GET>` |

### 替代词

| 替代词  | 描述         | 示例                                  |
| ------- | ------------ | ------------------------------------- |
| `%now%` | 当前时间日期 | `%now%` -> `2025-08-27T16:17:07.901Z` |

## 简化 log 方法

为了方便使用，可以直接使用 `log`、`logError`、`logDebug` 和 `logWarn` 方法，
而不必每次都调用 `console.log(...fmt())`进行格式化。

但要注意使用这种方法打印日志，无法简单的通过调用找打印方法的源代码，
建议只用来临时调试，而非长久保留的日志打印。

```ts
import { log, logError, logWarn, logDebug } from "fzz"

log("[MoonvyWeb|v2.0.5]", "这是一条普通日志")
logError("[Error|GET]", "这是一条错误日志")
logWarn("[Warning|POST]", "这是一条警告日志")
logDebug(">>>", "这是一条调试日志")
```
