Console.Log IMproved - clim
A little Node.js module which improves the behavior of the logging methods of the
console
object without changing its API. Just drop it in.
http://esa-matti.suuronen.org/blog/2012/09/30/improving-console-dot-log-for-node-dot-js/
Improvements
Improvements affect only log
, info
, warn
and error
methods.
- Add timestamp
- Add log level LOG/INFO/WARN/ERROR
- Always log to stderr
- Allow prefixing and inheriting
Installation
npm install clim
Usage
Function Signature
Object newconsole = clim( [String prefix], [Object parent], [Boolean/Object patch parent] )
All parameters are optional.
Just shadow the original console
object and use it like always:
var console = ;console;console;console;console;
Or if you want process wide improved console object you can monkeypatch the
original object by passing it and true
to clim
:
console true;console;
Or if you don't want to use the util.format
and just pass the arguments to
clim.logWrite
, you can use noFormat
option to do that:
var console = "" {} noFormat: true patch: false; console
Prefix Inheriting
Add prefix to your log messages by passing it as the first argument:
var console = "myapp";console;
Sun Sep 30 2012 16:45:57 GMT+0300 (EEST) INFO myapp message
Inherit prefixes from some other console object by passing it as the second parameter:
var clim = ; var console = ;console; { var logger = ; logger;} ;
Sun Sep 30 2012 16:59:12 GMT+0300 (EEST) INFO myapp message
Sun Sep 30 2012 16:59:12 GMT+0300 (EEST) WARNING myapp somefunc in function
Customizing
Change date format by overriding getTime
:
clim{ return ;};
Change global log target and formatting details by overriding logWrite
:
clim { // Default implementation writing to stderr var line = clim + " " + level; if prefixeslength > 0 line += " " + prefixes; line += " " + msg; processstderr; // or post it web service, save to database etc...};
Design Philosophies
- Keep the same api as in the original console object
- Small
- No dependecies
- Tests
- MIT Licensed