npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

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,一般可填文件名 第二个参数是实现了 logerror 方法的日志类的实例,例如常见的console,或者自行实现的 logger 实例,如果不传,默认取当前上下文中的logger: this.logger

打印时机和打印内容

{
  开始调用时: 模块名、方法名,参数
  调用成功时: 模块名、方法名,调用结果
  调用报错时: 模块名、方法名,错误内容,并将错误继续 throw 出去
}

方法名被修改 代码压缩后,有些压缩工具会将类的方法名也替换成类似 abc 的名称,导致装饰器装饰后打印的方法名不是开发时的方法名。如果遇到这个问题,可以在压缩工具的配置中配置成不要压缩方法名。