• Nest 在日志中打印对象


    Nest 自带的日志方法 Logger.log 签名如下:

    static log(message: any, context?: string, isTimeDiffEnabled?: boolean): void;

    只能通过指定期中的 message 打印文本。

    所以它不能像原生的 console.log 那样直接打印对象,比如:

    console.log('var:',someVariable);

    但你可能会说,使用模板字符串就可以解决,像这样:

    Logger.log(`var: ${someVariable}`);

    实际上得到的输出:

    [1] [Nest] 24911   - 09/16/2020, 2:20:20 PM   var: [object Object] +0ms
    

    所以为了正常打印对象,还需要借助 node 自带的 util.inspect 将对象拍平:

    import { inspect } from 'util';
    
    Logger.log(`var: ${inspect(someVariable)}`);
    // 作为对照:
    console.log('var:', someVariable);

    测试其输出:

    [1] [Nest] 24911   - 09/16/2020, 2:20:20 PM   var: { blah: 1, foo: { bar: 'xxx' } } +2282ms
    [1] var: { blah: 1, foo: { bar: 'xxx' } }

    输出结果能够正常阅读了。

    借助于 inspect,可以统一收敛日志的打印,而不用在单独需要打印对象的场景切换到 console.log,对于后面对日志作统一管理,打标签收集都有好处。

    相关资源

    The text was updated successfully, but these errors were encountered:

    CC BY-NC-SA 署名-非商业性使用-相同方式共享
  • 相关阅读:
    sed
    UCOSIII(二)
    UCOSIII(一)
    IIC
    SPI
    vii
    find
    grep
    Scrum项目4.0
    Scrum项目3.0
  • 原文地址:https://www.cnblogs.com/Wayou/p/14717693.html
Copyright © 2020-2023  润新知