# fshows-logger

> ## 使用

Latest version **3.0.15** (published 2022-11-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install fshows-logger
pnpm add fshows-logger
yarn add fshows-logger
bun add fshows-logger
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.15 |
| Published | 2022-11-26 |
| First published | 2021-08-26 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=6.0.0 |
| Dependencies | 1 |
| Unpacked size | 157.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | xiaotingamy |
| Maintainers | fubei, zhangliping, mo_06, xiaotingamyamy, iwfshao, dtgfzc |

## Links

- npm: https://www.npmjs.com/package/fshows-logger
- Repository: https://github.com/xiaotingamy/fsLogger
- Homepage: https://github.com/xiaotingamy/fsLogger#readme
- Issues: https://github.com/xiaotingamy/fsLogger/issues
- npm.io page: https://npm.io/package/fshows-logger

## Dependencies (1)

- [@fubei/mina-sls](https://npm.io/package/@fubei/mina-sls.md) 0.0.12

## Recent versions

- 3.0.15 (latest) — 2022-11-26
- 3.0.14 — 2022-11-26
- 3.0.13 — 2022-11-26
- 3.0.12 — 2022-09-20
- 3.0.11 — 2022-09-20
- 3.0.10 — 2022-09-20
- 3.0.8 — 2022-09-19
- 3.0.7 — 2022-09-19
- 3.0.6 — 2022-09-19
- 3.0.4 — 2022-09-19
- 3.0.3 — 2022-09-19
- 3.0.2 — 2022-09-19
- 3.0.1 — 2022-09-19
- 3.0.0 — 2022-09-17
- 2.0.10 — 2022-08-09
- … 30 more at https://npm.io/package/fshows-logger/versions

## README

# fsLogger 日志工具

## 使用

### 安装

```bash
npm install fshows-logger --save
```

### demo

```javascript
import FsLogger from 'fshows-logger'

const extra = {
  mode: 'my mode'
}
const logger = new FsLogger({
  project: 'fshows-ecs-tes', // Project名称。
  logstore: 'web-merchant-bsite-log-dev', // Logstore名称。
  data() { // 非必填
    return {
      AppId: `fs-web-project`,
      ...extra
    }
  }
})

// 如需上报IP信息，需调用初始化Ip信息的方法
logger.initIpInfo().then(() => {
  logger.log('INFO', '我是一条info日志1')
})


logger.log('INFO', '我是一条info日志')

logger.info('我是第二条info日志')

logger.warn('我是一条warn日志')
logger.error('我是一条error日志')
logger.error({ errorCode: 1009, errorMsg: '网络繁忙，请稍后再试' })

```

## 配置项

- 是否上报平台信息（SystemInfo/Useragent） sendSysInfo true为上报  false为不上报 默认为true

- 上报内容 data
  - 基础字段
    - AppId	应用ID， 默认为'fs-logger-default'
    - Content	上报内容，默认是空字符串
    - Level	日志级别，默认是INFO，大写字母
    - LocalMachineTime 本地上报时间
    - UserAgent  浏览器环境，上报浏览器信息, sendSysInfo为true的情况下上报
    - SystemInfo  小程序环境，上报系统信息, sendSysInfo为true的情况下上报
  - 其他自定义字段

|  参数名称  | 类型 | 是否必填  |  描述  |  默认值 |
|  ---- | ---- | ----  | ----  | ---- |
| host  | string | 否 |  所在地域的服务入口。例如cn-hangzhou.log.aliyuncs.com  | cn-hangzhou.log.aliyuncs.com |
| project  | string | 是 |  Project名称  |  |
| logstore  | string | 是 |  Logstore名称  |  |
| time  | number | 否 |  发送日志的时间间隔，默认是10秒  | 10 |
| count  | number | 否 |  发送日志的数量大小，默认是10条  | 10 |
| data  | Object/Function | 否 |  上报的字段  | |
| sendSysInfo  | Boolean | 否 |  是否上报平台信息  | true |


## 方法
|  参数名称  | 类型 | 是否必填  |  描述  |  默认值 |
|  ---- | ---- | ----  | ----  | ---- |
| reportType  | OBJECT/STRING | 选填 |  STRING：以字符串形式在content字段中进行上报 OBJECT：对象形式   | STRING |

initIpInfo  如需上报IP信息，需调用初始化Ip信息的方法。获取ip信息方法是异步的，返回一个promise对象

```javascript
initIpInfo()
```

log 上报日志

```javascript
log(level: string, content: string | object, reportType: 'OBJECT' | 'STRING')
```

info 上报level为info的日志

```javascript
info(content: string | object, reportType: 'OBJECT' | 'STRING')
```

warn 上报level为warn的日志

```javascript
warn(content: string | object, reportType: 'OBJECT' | 'STRING')
```

error 上报level为error的日志

```javascript
error(content: string | object, reportType: 'OBJECT' | 'STRING')
```

updateInfo  修改上报字段信息

info参数是上报字段对象，接口定义如下：

```javascript
updateInfo(info: ISendInfo)
```

```typescript
interface ISendInfo {
  AppId?: string
  Content?: string | object
  Level?: string
  LocalMachineTime?: string | undefined
  UserAgent?: string
  SystemInfo?: string
  _SI_IP?: string
  _SI_GEO?: string
  [propName: string]: any
}
```

---
_Source: https://npm.io/package/fshows-logger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
