dingtalk-robot-transport
依赖
winston 2.x(目前不支持3.x版本)
钉钉机器人的token,如何生成钉钉机器人可以参考钉钉自定义机器人文档
可选参数
参数 | 类型 | 用途 | 默认值 | 必须 | 备注 |
---|---|---|---|---|---|
level | String | 指定日志输出级别 | - | 是 | |
token | String 或String[] | 指定日志推送的目标机器人 | - | 是 | 当token是个列表时并不是批量发送给每个token,而是用于拓展 |
title | [String] | 日志通知 | 否 | ||
appName | [String] | 应用的名称 | 读取项目根目录package.json,获取name属性,如果没有获取到会是unknown |
否 | |
hostname | [String] | 产生日志的服务器名 | 默认通过require('os').hostname() 获取 |
否 | |
robotHookHost | [String] | 钉钉机器人推送的host | https://oapi.dingtalk.com | 否 | |
timestamp | [Function] | 格式化日志产生的时间戳 | moment的YYYY-MM-DD HH:mm:ss,SSS |
否 | |
formatter | [Function] | 自定义钉钉推送的消息格式 | format.simple | 否 | |
retries | [Number] | 钉钉消息推送失败之后重试次数,用户可以通过设置0来关闭重试功能 | 3 | 否 | 每次重试时,都会保证和上一次使用不同的token |
详细说明
-
timestamp(): String
内置的timestamp是不接受任何参数的
-
formatter(info: Object): Object
函数参数是一个对象,有以下属性
参数 | 类型 | 备注 |
---|---|---|
msg | String | 日志的消息部分 |
meta | Object | 日志的meta部分 |
level | String | 日志的级别(过滤后的,例如:实例化的时候定义了level:info ,这里的level只可能是info及其以上) |
title | String | 钉钉消息推送时的title |
appName | String | 应用的名称 |
hostname | String | 产生日志的服务器名 |
stimestamp | Function | 获取格式化后时间的函数 |
示例
- timestamp
const moment = ; { return ;};
-
formatter
此函数的返回值会直接用于发送钉钉消息推送,所以用户可以在这里自定义任何钉钉支持的消息格式
- simple
const logger =transports:name: 'dingTalk'hostname: 'dingTalk-robot'level: 'info'token: 'token'formatter: formatsimplemaxLine: 2;logger- 未来会支持更多的格式
使用
yarn add dingtalk-robot-transport
const logger = transports: name: 'dingTalk' // winston 本身的限制,这个是必须的 hostname: 'dingTalk-robot' // 可选参数 level: 'error' token: 'your robot token' // ['token1', 'token2'],启用多个token,降低频率(20条/分钟)限制的影响 retries: 0 // 默认: 3,失败(包括频率限制导致的失败)会重试 3 次 ,多个 token 时每次重试会使用和上一次不同的token maxLine: 2 ; logger
ChangeLog
- v1.0.0
计划
- 添加频率控制功能。超过指定频率的错误在一段时间内不再推送