这一篇足够:转载:http://www.cnblogs.com/Joans/p/4092293.html

代码贴出来吧:

log.js

  1. var log4js = require('log4js');
  2. log4js.configure({
  3. appenders: [
  4. {
  5. type: 'console',
  6. category: "console"
  7. }, //控制台输出
  8. {
  9. type: "dateFile",
  10. filename: 'logs/log.log',
  11. pattern: "_yyyy-MM-dd",
  12. alwaysIncludePattern: false,
  13. category: 'dateFileLog'
  14. },
  15. {
  16. type: "dateFile",
  17. filename: 'logs/sqllog.log',
  18. pattern: "_yyyy-MM-dd",
  19. alwaysIncludePattern: false,
  20. category: 'sqlFileLog'
  21. },
  22. {
  23. type: 'file',
  24. filename: 'logs/soldier.log',
  25. category: 'soldierLog'
  26. }
  27. ],
  28. replaceConsole: true, //替换console.log
  29. levels: {
  30. dateFileLog: 'INFO',
  31. sqlFileLog: 'INFO',
  32. soldierLog: 'ERROR'
  33. }
  34. });
  35.  
  36. var dateFileLog = log4js.getLogger('dateFileLog');
  37. var soldierLog = log4js.getLogger('soldierLog');
  38. var sqlFile = log4js.getLogger('sqlFileLog');
  39.  
  40. //exports.logger = dateFileLog;
  41.  
  42. exports.use = function (app) {
  43. //页面请求日志,用auto的话,默认级别是WARN
  44. //app.use(log4js.connectLogger(dateFileLog, {level:'auto', format:':method :url'}));
  45. app.use(log4js.connectLogger(dateFileLog, {level: 'debug', format: ':method :url'}));
  46. };
  47.  
  48. global.logger = dateFileLog;
  49. global.sqlLogger = sqlFile;
  50. global.soldierLog = soldierLog;

在express初始化时候:

var log = require('./log4');//引入Log4js

log.use(app);//app为express的对象

虽然设置的debug模式,但是只有info以上的可以打出来,info也可以

其中type的格式有file 还有datefile之类的。

log4js的输出级别6个: trace, debug, info, warn, error, fatal

  • logger.trace(‘Entering cheese testing’);
  • logger.debug(‘Got cheese.’);
  • logger.info(‘Cheese is Gouda.’);
  • logger.warn(‘Cheese is quite smelly.’);
  • logger.error(‘Cheese is too ripe!’);
  • logger.fatal(‘Cheese was breeding ground for listeria.’);

如果输出级别是INFO,则不会打印出低于info级别的日志trace,debug,只打印info,warn,error,fatal。这样做 的好处在于,在生产环境中我们可能只关心异常和错误,并不关心调试信息。从而大大减少日志的输出,能减少磁盘写入。而在开发环境中,我们可以需要打印非常 多的信息,帮助开发人员定位错误,调试代码。

还有一个好处就是,代码中可以混有各种的日志打印代码。我们只要在一个配置文件中,修改输出级别,日志输出就会发生变化,不用修改所有的代码。如果所有地方都是console.log(),那么上线的时候,改动这个东西就要花很多时间。

log4js的更多相关文章

  1. NodeJs之log4js

    log4js log4js是一个管理,记录日志的工具. 其实与morgan的作用类似. 安装 npm install -g log4js log4js的6个日志级别 分别是:trace(蓝色).deb ...

  2. 日志管理log4js的配置

    以前就是在app.js 直接用,今天把它抽出来了. log4js.json { "appenders": [ { "type":"console&qu ...

  3. node.js中log4js的使用

    以前用过forever进程守护的日志记录到指定文件,但是只能保存到一个文件中不能分片,这样到只日志文件越来越大, forever start -s -l ./forever.log app.js -l ...

  4. node 日志管理log4js

    node 日志管理log4js 一.默认的控制台输出 我们使用express框架时,开发模式用node或者supervisor启动nodejs应用时,控制台都是显示如下的日志. GET /css/bo ...

  5. Node.js log4js日志记录

    这次需要给之前弄的文件服务器添加日志记录,一般每天产生的日志会特别多所以安装日期来划分是最好的,这里我用了express框架,为了适应express框架这里在log.js文件中写了use方法. //日 ...

  6. 【log4js】

    手动创建日志目录 定时清理 nodejs之日志管理 玩转Nodejs日志管理log4js access.log-2015-11-20

  7. 玩转Nodejs日志管理log4js(转)

    转自:http://blog.fens.me/nodejs-log4js/ 前言 日志对任何的应用来说都是至关重要的.在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4j ...

  8. Node log4js

    一个完善的项目,日志是必不可少的一部分,在node开发中,调试成了让开发者头疼的部分,因此日志成为在node中帮助调试的一个重要模块. 一.Node使用Log4js 1.使用npm工具,在命令行中 执 ...

  9. Nodejs 使用log4js日志

    一.创建log4.js文件,保存日志到log文件,并在控制台输出,如果不控制台输出,把删除红色的代码 const log4js = require('log4js'), path = require( ...

随机推荐

  1. fork函数

    在Unix/Linux中用fork函数创建一个新的进程.进程是由当前已有进程调用fork函数创建,分叉的进程叫子进程,创建者叫父进程.该函数的特点是调用一次,返回两次,一次是在父进程,一次是在子进程. ...

  2. Linux 下从头再走 GTK+-3.0 (六)

    在 GTK3 中增加了一个 GtkApplicaton 类,便于我们处理多窗口程序,同时有了 GtkApplication 我们也更容易创建灵活,易用,界面美观的应用程序. 在前面的几个例子中,演示了 ...

  3. Android中的Shape使用总结

    参考:http://www.cnblogs.com/gzggyy/archive/2013/05/17/3083218.html 在Android程序开发中,我们经常会去用到Shape这个东西去定义各 ...

  4. ubuntu16.04 安装网易云音乐

    最爱的播放器 网易云音乐 哈哈,刚刚折腾了双系统,立马开始了软件安装. 网易云音乐从官网下载对应的 64 位版本,我下载的是 netease-cloud-music_1.0.0_amd64_ubunt ...

  5. jQuery选择器简单例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="jQuery_5.aspx. ...

  6. SpringMVC接收参数的注解笔记

    1.@RequestParam var param = {}; param.keys = delKeys.join();//delKeys是数组,如delKeys=['a',b','c'],join函 ...

  7. Mango DS Traning #49 ---线段树3 解题手记

    Training address: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=38994#overview B.Xenia and B ...

  8. Update和LateUpdate的区别

    LateUpdate晚于所有Update执行 在圣典里LateUpdate被解释成一句话:LateUpdate是在所有Update函数调用后被调用.这可用于调整脚本执行顺序. 当物体在Update里移 ...

  9. find命令错误提示路径必须在表达式之前

    在某些版本的linux下,通过find查找当前目录下所有后缀名jpg的文件,命令为find ./ -iname *.jpg 会出现“find: 路径必须在表达式之前”的错误提示.解决的方法有两种 a. ...

  10. mysqli_stmt预处理类的使用