小白也能写框架之【二、带颜色的日志管理器】

目的不一样吧,我是为了在打印日志的位置保存记录,这个记录是要在游戏中展示给测试去看的,原生端游戏,测试如果想看日志或者我想回他们设备上的运行记录,只能自己封装log

哥,我没看懂,你的日志不是可以显示 使用者么?

怎么我复制到我的日志管理器里,还是显示 日志管理器 本身ne ?

他的this就是window,要自己封装就像下面这样

为什么你们的脑子都这么好?

我是饭喂到我嘴里才知道,谢谢老师。

样式这东西自己看着舒服心里舒坦

/**

 * 日志管理类,用于统一日志输出格式

 */

export class LogMgr {

    /**

     * 用于输出调试信息

     */

    static get debug() {

        return window.console.log.bind(window.console, '%c【调试】', 'color: white; background-color: #007BFF; font-weight: bold; font-size: 14px;');

    }

    /**

     * 用于输出一般信息

     */

    static get info() {

        return window.console.log.bind(window.console, '%c【信息】', 'color: white; background-color: #28A745; font-weight: bold; font-size: 14px;');

    }

    /**

     * 用于输出警告信息

     */

    static get warn() {

        return window.console.log.bind(window.console, '%c【警告】', 'color: black; background-color: #FFC107; font-weight: bold; font-size: 14px;');

    }

    /**

     * 用于输出错误信息

     */

    static get err() {

        return window.console.log.bind(window.console, '%c【错误】', 'color: white; background-color: #DC3545; font-weight: bold; font-size: 14px;');

    }

}

代码已更新,演示如下:

1赞

好用的咧 :+1:

:crazy_face: :relaxed:

好用就行,适合新手

还以为抄了我的代码。 :sweat_smile:

嘿嘿,哥们你的这个是怎么写的啊?有没有更高效的

和你写的差不多,但是我的是单例,我觉得window下挂东西,会污染这个window的节点。之前看过太多游戏都挂在下面了。导致不知道下面挂了多少个同名节点嘿嘿。
第二点,你可以看下腾讯的vconsole里,应该是不会显示颜色的。。

目前调试都是在浏览器环境下,我一般都不管vconsole

目前就挂了一个app变量

/** 全局 Window 接口 */

declare global {

    interface Window {

        app: Core;

    }

    var app: Core;

}

/** 创建 Core 类的实例并赋值给全局 window 对象 */

window.app = new Core();

这里var改成const会不会更好

嘿嘿,可以,谢谢

就是有一点不好 不确定数据参数数量的情况下 没法用占位符改变所有打印数据的样式 我也不知道怎么优化 索性日志管理类和楼主一样(是不是忘了加过滤等级) 然后自己再重写了console 支持根据参数类型改变不同的打印样式 不过这样做又没法保持原始堆栈

其实不要想这么多
我们的日志管理器主要用于打印一些常规日志,并不是用于堆栈调试。

如果遇到堆栈错误,你不用日志他也会爆红的,也能调试。

我是搞了两手
一手用日志管理类打印常规日志 打印方法里加个过滤等级的判断 这样只要调高过滤等级就不会打印低级日志 属于被动打印 带原始堆栈信息
另一手重写了console用来平时手动打log调试用 经常会打印好几个参数一起看 这样我根据参数类型设置不同的颜色就一目了然 手动打log也不在乎堆栈 :grimacing:

适合我们小白就行 :laughing:

这个的确可以,多谢了。拿走了!