简介
loglevel-remote是一款基于loglevel的扩展包,它可以将log发送到指定的服务器上以便更好的追踪和管理。
安装
使用npm进行安装:
npm install loglevel-remote --save
基本使用
引入loglevel-remote:
import { configureRemote } from 'loglevel-remote';
配置:
configureRemote({ level: 'debug', serverUrl: 'http://localhost:3000/log', });
发送
const logger = getLogger('myLogger'); logger.debug('Hello World');
此时服务器上将会收到以下数据:
{ "level": "debug", "name": "myLogger", "message": "Hello World", "timestamp": "2021-08-08T07:43:28.081Z" }
进阶用法
自定义数据
可以通过在log中传入一个对象来自定义更多的数据:
logger.debug('Hello World', { extra: 'data' });
此时服务器上将会收到以下数据:
{ "level": "debug", "name": "myLogger", "message": "Hello World", "timestamp": "2021-08-08T07:43:28.081Z", "extra": "data" }
自定义格式
可以自定义数据的格式,只需传入一个函数即可:
configureRemote({ level: 'debug', serverUrl: 'http://localhost:3000/log', format: (data) => `${data.timestamp} [${data.level.toUpperCase()}] [${ data.name }] - ${data.message} - ${JSON.stringify(data.extra)}\n`, });
调用堆栈
可以获取调用堆栈信息:
logger.debug('Hello World', { extra: 'data', stack: getStack(), });
使用过滤器
通过过滤器可以只发送指定类型的log,例如只发送debug级别的log:
configureRemote({ level: 'debug', serverUrl: 'http://localhost:3000/log', filter: (level) => level === 'debug', });
持续发送
可以一直发送log,直到网络正常连接:
configureRemote({ level: 'debug', serverUrl: 'http://localhost:3000/log', persistent: true, });
结论
以上就是使用loglevel-remote的基本用法和进阶用法。使用loglevel-remote可以更完整的追踪log,使制定log策略更加有效,值得我们进一步探究。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055af281e8991b448d89af