yunxin-log-debug
v1.1.6
Published
主要用于记录开发时的调试日志 基于[loglevel](https://github.com/pimterry/loglevel)封装
Downloads
665
Readme
yunxin-log-debug
主要用于记录开发时的调试日志 基于loglevel封装
下载
$ npm install yunxin-log-debug --save
使用
import logDebug from 'yunxin-log-debug'
const logger = logDebug(params);
logger.log('hello world');
参数说明
level?
日志级别,同loglevel,低于该级别的日志不会显示在控制台
appName?
应用名称
version?
应用版本
storeWindow?
是否将日志对象存储到window中,便于开发或线上调试使用
通过 window.__LOGGER__
访问
typescript 装饰器模式
项目中的 tsconfig
加上如下配置:
{
"compilerOptions": {
"experimentalDecorators": true
}
}
使用
import { createLoggerDecorator } from 'yunxin-log-debug'
const loggerDec = createLoggerDecorator('module-name', console)
class A {
@loggerDec
syncFunc(num: number) {
return 'hello, world: ' + num
}
@loggerDec
asyncFunc(num: number) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(num)
}, 300)
})
}
}
(async () => {
var a = new A()
await a.asyncFunc(1);
a.syncFunc(2)
})()
createLoggerDecorator
是一个装饰器工厂
第一个参数是 moduleName
,一般可填文件名
第二个参数是实现了 log
和 error
方法的日志类的实例,例如常见的console
,或者自行实现的 logger
实例,如果不传,默认取当前上下文中的logger: this.logger
打印时机和打印内容
{
开始调用时: 模块名、方法名,参数
调用成功时: 模块名、方法名,调用结果
调用报错时: 模块名、方法名,错误内容,并将错误继续 throw 出去
}
方法名被修改
代码压缩后,有些压缩工具会将类的方法名也替换成类似 a
、b
、c
的名称,导致装饰器装饰后打印的方法名不是开发时的方法名。如果遇到这个问题,可以在压缩工具的配置中配置成不要压缩方法名。