【nodejs】数据统计平台碰到的坑

本文分享了在使用Node.js构建数据统计平台过程中遇到的问题及解决办法,详细介绍了如何使用log4js进行日志记录,并提供了调试技巧和配置示例。

记录使用nodejs实现数据统计平台碰到的一些坑:

String + Array

在调试的时候需要打印一些log进行分析,打印long的源码为:

这里写图片描述

控制台输出的结果为:

这里写图片描述

以为是字符串的原因,将searchArgs转为字符串,打印log的代码改为

log.info("请求的参数为:", searchArgs.toString)

控制台输出仍为

搜索的searchArgs为:[object object]

尝试直接打印

log.info(searchArgs)

控制台输出的结果为:

这里写图片描述

正确!

log4js

使用log4js对日志进行输出

在log/logger.js中实现

这里写图片描述

使用的实例为:

var log = require('../../logs/logger.js').logger('testLog','Module');

log.info('info');
log.warn('warn');
log.error('error');

在D盘的log4Platform文件夹下生成testLog_yyyy-MM-dd.log 文件
文件内容为:

[2016-08-10 18:19:07.941] [INFO] Module - info
[2016-08-10 18:19:07.944] [WARN] Module - warn
[2016-08-10 18:19:07.944] [ERROR] Module - error

当在一个.js文件中声明:

var log = require('../../logs/logger.js').fixedlogger('module');

所有模块均可以调用

log.info('info');
log.warn('warn');
log.error('error');

当在a.js文件中声明:

var log = require('../../logs/logger.js').fixedlogger('a');

在a.js中使用

log.info('a info');

当在b.js文件中声明:

var log = require('../../logs/logger.js').fixedlogger('b');

在b.js中使用

log.info('b info');

发现只有a.js或者b.js文件能写入log文件中,但是在控制台都能输出

原来 log4js.configure 是一个全局设置

故在log/logger.js文件中,初始化

log4js.configure({
    appenders: [
        {
            type: "console"
        }
    ],
    replaceConsole: true
});

log4js.loadAppender('dateFile');

使用 log4js.addAppender 的方法:

function getLogger(filename,moduleName){
    log4js.addAppender(log4js.appenders.dateFile(path.join(logPath, filename), "_yyyy-MM-dd.log", true), moduleName);
    var log = log4js.getLogger(moduleName);
    log.setLevel('auto');
    return log;
}

此时在不同的.js文件中均可以传不同参数进行调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sysu_lluozh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值