0.0.2 • Published 10 years ago

log-client-node v0.0.2

Weekly downloads
5
License
-
Repository
-
Last release
10 years ago

Log API for Nodejs {#welcome}

log API for nodejs for new house projects based on nodejs is used for generate logs which more friendly to Centrailzed Logging System^cls

log API for nodejs is based on tracer

svn repository

https://xmsvn.ehealthinsurance.com/svn/centralized-logging/branches/dev/log-client-node


What logs printed by log-client-node looks like

####pattern

level:{{title}}|$|timestamp:{{timestamp}}|$|requestId:{{requestId}}|$|class:{{file}}|$|line:{{line}}|$|message:{{message}}

####example

level:info|$|timestamp:2014091617010569|$|requestId:|$|class:index.js|$|line:12|$|message:hello world!

How to use it

add dependency to package.json

"dependencies": {
    "log-client-node":                      "0.0.2",
}

install log-client-node

npm install

require log-client-node in your code

app.log = require('log-client-node')(setting);

Here is the setting example

setting = {};
setting.APP_NAME = 'xis';
setting.logDirectory = 'logs';
setting.strategy = 'console'; // [console, colorConsole, dailyfile]
setting.level = 'info';

temp log file

log API for nodejs will create a temp log file beside the original log file. For example: If the original log file named "2014-09-10-xis-node.log" then there will be a log file named "2014-09-10-xis.log.temp" be created.


Usage

Log file name

log-client-node will create log file which name is in this format logDate + "-" + appName + "-node.log".

for example 2014-06-08-xis-node.log

Print 4 levels logs

log-client-node support 4 levels logs like log4j: debug, info, warn, error

####example

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);

Log Transaction

log-client-node supports log transaction. It can helps you to print the duration time of one operation, such as database IO, read file, send request, etc.

####Usage 1. Use log.newTransaction(transactionContext) to create a log transaction. transactionContext can be a String or a JSON Object. 2. Use log.completeTransaction() at the end of this operation. Then it will print a log with your transactionContext and the duration time.

NOTE:

####example

    app.log.info('Begin to query code table, sql: select * from code_product_type ');
    app.log.newTransaction('sql: select * from code_product_type');
    var mysql      = require('mysql');
    var connection = mysql.createConnection({
        host     : '192.168.1.33',
        port     : 3306,
        user     : 'admin',
        password : 'lkjhgf',
        database : 'test'
    });
    connection.connect();
    connection.query('select * from code_product_type', function(err, rows, fields) {
        if (err) throw err;
        app.log.completeTransaction();
        res.send({ 'hello': 'world1' });
    });
    connection.end();
    

####Result

level:info|$|timestamp:2014091716555489|$|requestId:|$|class:D:\WebstormProjects\log-client-node-demo\index.js|$|line:15|$|message:hello log-api
level:info|$|timestamp:2014091716555490|$|requestId:|$|class:D:\WebstormProjects\log-client-node-demo\index.js|$|line:17|$|message:Begin to query code table, sql: select * from code_prod
uct_type
level:info|$|timestamp:2014091716555575|$|requestId:|$|class:D:\WebstormProjects\log-client-node\index.js|$|line:122|$|message:{transContext:"sql: select * from code_product_type",durati
on:847}

^cls: Centralized Logging System is a log collect system. You can query all logs generated by ehi project, whatever new house or old house. Engineers can use this system to do troubleshooting.