<p align="center">
	<br>
	<img src="https://codexhelp.com/log-beautify/logo.png" alt="log-beautify">
	<br>
	<br>
</p>

# log-beautify

在您的终端上以样式显示日志消息:-)。使用调试级别启用或禁用日志消息。

> 来源于 [log-beautify](https://www.npmjs.com/package/log-beautify)，优点：
> 1. TypeScript 支持
> 2. 无用的文件不会被打进 npm 包

# Installation

```bash
npm install @kai-peng/log-beautify
```

# Usage

```js
const log = require('log-beautify')

log.trace('Trace') //将级别更改为使用 trace。
log.success('Success')
log.ok('Ok') // success 别称
log.debug('Debug')
log.info('Info')
log.warning('Warning')
log.warn('Warn') //warning 别称
log.error('Error')
```

# Use case :-)

<p align="center">
	<img src="https://codexhelp.com/log-beautify/code-marvel.png" alt="log-beautify">
	<img src="https://codexhelp.com/log-beautify/terminal-marvel.png" alt="log-beautify">
	<img src="https://codexhelp.com/log-beautify/browser-marvel.png" alt="log-beautify">
	<br>
</p>

# API

### Log methods

- `log.success()` _(文本颜色)_
- `log.success_()` _(背景颜色)_
- `log.ok()` _(log.success() 别称)_
- `log.ok_()` _(log.success\_() 别称)_
- `log.debug()`
- `log.debug_()`
- `log.info()`
- `log.info_()`
- `log.warning()`
- `log.warning_()`
- `log.warn()` _(log.warning() 别称)_
- `log.warn_()` _(log.warning\_() 别称)_
- `log.error()`
- `log.error_()`
- `log.show()`_(默认 console.log())_

您可以创建自己的日志方法，例如：

```js
log.setColors({
  custom_: 'green',
})
log.setSymbols({
  custom_: '✅ ',
})

//Now you can use it
log.custom_('Server listening on port 3000 ')
```

<p align="center">
	<br>
	<img src="https://codexhelp.com/log-beautify/log-beautify-custom.png" alt="log-beautify">
	<br>
	<br>
</p>

### Log levels

全局级别为: 1
<br>
新日志方法的默认级别为: 1
<br>
默认级别

```js
{
    silent: -1,//隐藏所有 log
    trace: 0,
    success: 1,
    debug: 2,
    info: 3,
    warning: 4,
    error: 5,
}
```

### Config

- `log.useSymbols = true` _(启用或禁用图标)_
- `log.useLabels = true` _(启用或禁用标签)_
- `log.setColors({})` _(添加或更改颜色)_
- `log.setSymbols({})` _(添加或更改符号)_
- `log.setLabels({})` _(添加或更改标签)_
- `log.setTextColors({})` _(更改背景日志的文本颜色)_
- `log.setLevel(1)` _(更改全局级别，默认为 1)_
- `log.setLevel(1, 'namespace')` _(log.setNamespaceLevel() 别名)_
- `log.setNamespaceLevel(1, 'namespace')` _(创建带有命名空间的级别，并在当前文件中使用它，全局级别将被忽略)_
- `log.namespace('namespace')` _(log.useNamespace() 别名)_
- `log.useNamespace('namespace')` _(在当前文件中使用命名空间的级别，全局级别将被忽略。您可以使用在其他文件中创建的命名空间)_
- `log.setLocalLevel(1)` _(创建仅在当前文件中使用的级别，全局级别将被忽略)_
- `log.setLevels({})` _(添加或更改级别)_


### Colors

您可以使用以下颜色格式（使用字符串）：

- `keyword` 例如: `"red"` _(black，white，red，green，yellow，magenta，cyan，gray)_
- `hex` 例如: `"#FFF000"`
- `rgb` 例如: `"rgb(255, 255, 255)"`
- `hsl` 例如: `"hsl(0, 100%, 50%)"`
- `hsv` 例如: `"hsv(330, 93%, 98%)"`
- `hwb` 例如: `"hwb(0, 100%, 0%)"`

# 例子

```js
/**
|--------------------------------------------------
| 禁用图标
|--------------------------------------------------
*/
log.useSymbols = false

/**
|--------------------------------------------------
| 禁用标签
|--------------------------------------------------
*/
log.useLabels = false

/**
|--------------------------------------------------
| 改变颜色
|--------------------------------------------------
*/
log.setColors({
  success: '#00FF00',
  error_: 'rgb(191,0,96)',
  info_: 'cyan',
})

/**
|--------------------------------------------------
| 添加或更改新的日志方法
|--------------------------------------------------
*/
//When you add a color, the method will automatically be created.
log.setColors({
  danger: '#FF8000',
  danger_: 'hsl(310, 99%, 57%)',
  saved: 'green',
})
//Now you can use log.danger() and log.danger_() and log.saved()

/**
|--------------------------------------------------
| 添加或者更改图标
|--------------------------------------------------
*/
log.setSymbols({
  danger: '⛔ ',
  ok: '👍 ',
  saved: '✅ ',
})

/**
|--------------------------------------------------
| 添加或者改变标签
|--------------------------------------------------
*/
log.setLabels({
  warning: 'WARNING!!!',
})

/**
|--------------------------------------------------
| 添加或更改背景日志的文本颜色
|--------------------------------------------------
*/
log.setTextColors({
  error_: 'black',
  info_: 'black',
})

/**
|--------------------------------------------------
| 添加或者更改日志级别
|--------------------------------------------------
*/
log.setLevels({
  fatal: 6,
  custom: 'info', //use info level
})

/**
|--------------------------------------------------
| 改变全局级别. 2 = "debug"
|--------------------------------------------------
*/
log.setLevel(2)
//log.setLevel('debug');

/**
|--------------------------------------------------
| 添加级别 "info = 3" 以仅在当前文件中使用，全局级别将被忽略
|--------------------------------------------------
*/
log.setLocalLevel('info')

/**
|--------------------------------------------------
| 创建带有命名空间的级别，并在当前文件中使用它，全局级别将被忽略
|--------------------------------------------------
*/
log.setNamespaceLevel('error', 'show-only-errors')

/**
|--------------------------------------------------
| 使用先前创建的命名空间。您可以使用在其他文件中创建的命名空间。
|--------------------------------------------------
*/
log.useNamespace('show-only-errors')
//log.namespace('show-only-errors');
```

# 来源

- [log-beautify](https://www.npmjs.com/package/log-beautify)

# 感谢

- [Maxlopez](https://github.com/Maxlopez)
- [Log Beautify](https://www.npmjs.com/package/log-beautify)
- [Color Regex](https://www.npmjs.com/package/color-regex)
- [Chalk](https://www.npmjs.com/package/chalk)

# License

MIT
