tracer:发布我的第一个npm package, 可以取代console的,支持强大配置的log输出库
发布于 12 年前 作者 baryon 13192 次浏览 最后一次编辑是 8 年前

发布我的第一个npm package

Tracer

支持彩色输出,文件名,行号,方法名的输出,很容易地支持输出到数据库

一个非常强大的支持配置的log输出库

功能

  • 输出log时,带有时间戳,文件名,行号函数名,甚至是调用堆栈
  • 输出的log格式支持定制
  • 支持自定义的输出函数名
  • 支持输出到文件,流,数据库(比如mongodb)等等
  • 支持过滤器功能,因此你看到一个可以支持彩色Console输出的功能

安装

npm install tracer

用法

普通用法

var logger = require('tracer').console();

彩色Console

var logger = require('tracer').colorConsole();

定制输出级别

var logger = require('tracer').colorConsole({level:2});

缺省的输出方法为

‘log’, ‘trace’, ‘debug’, ‘info’, ‘warn’, ‘error’

logger.log('hello');  
logger.trace('hello', 'world');  
logger.debug('hello %s',  'world', 123);  
logger.info('hello %s %d',  'world', 123, {foo:'bar'});  
logger.warn('hello %s %d %j', 'world', 123, {foo:'bar'});  
logger.error('hello %s %d %j', 'world', 123, {foo:'bar'}, [1, 2, 3, 4], Object);  

完全支持类似printf的输出, 支持%s字符串, %d数字, %j JSON,同时可以自己检测输出内容的类型

更多例子参见examples目录

全部文档见GITHUB https://github.com/baryon/tracer

22 回复

wow,兼容console的全部方法?用例是否可以更新详细写呢?

可以取代console的,支持强大的配置。 支持输出到文件,流,数据库(比如mongodb)等等。 支持过滤器功能,因此你看到一个可以支持彩色Console输出的功能。

用了一下,感觉很不错。赞一下!

谢谢

看了一下github,readme非常详细的,还带测试。楼主要一直维护下去喔,我打算替换正在使用的非常弱的logger

8个空格是否太宽了呢,缩进几层就感觉有点太空了,个人觉得4个空格合适一点

代码的缩进以及格式,我完全让编辑器来做, 这也是我一直不喜欢python的地方,凭什么写个代码还要控制有几个空格啊,还要区分tab和空格的区别啊。 这种工作明明应该用工具来做的。
我使用的是Titanium Studio,他可以很好地帮助我把Javascript的格式搞定,当然也有bug,也有不理想的地方,这时候可以考虑 [JS Beautifier]](http://jsbeautifier.org/)

@baryon 代码缩进的争论挺多的(好像也挺无意义的),大家有自己的习惯,只是统一的风格适合交流而已。

我用空格而不是用tab的主要原因是不同编辑器可能默认的tab对应的空格数不一致,自己又不一定总是用一个编辑器,所以,把 tab 设定为 softtab,然后宽度指为 4,这样方便我自己而已。

说的那个编辑器没听说过,扫了一眼,感觉是直接基于 aptana。

现存的一些log库确实太差了,要么功能不足,要么过度设计,我考察过 winston,basic-logger,yalog等等npm上容易检索到的几个库,都不满意,只好自己写。 尽可能地简单,容易定制,不过度依赖太多的第三方库。欢迎大家使用。

@liunian 是收购了aptana,用javascript开发ios,android的利器,杀气很重的装备,建议立即配置

@baryon 原来被收购了啊,有空看看如何

是个好东西,果断关注

aptana github上有开源哇,eclipse平台上就是各种慢~,附加功能太多~

不错,试用中

好东西,必须收藏。

太好了,正好在找这个东西。

@baryon 新手有几个问题请问啊: 1、时间戳 默认的是ISO的时间,请问如何改成北京时间? 2、日志中的<anonymous>如何替换? 3、能否让日志即在控制台打印又在日志文件中打印呢?

2012-09-06T08:53:25.563Z <info> E:\WebstormProjects\node_im\lib\wx_api.js:78 (ClientRequest.            <anonymous>) 

试用过,不过还是感谢楼主分享

你好,想请教个问题,上线的时候,如果我只想输出error级别的日志到文件,轻级别的不输出到日志文件,该如何配置呢? 不需要手动去删除掉用来debug的日志代码吧?

@yuanlingqi 改变config里的level, 从log,改成warn

回到顶部