From b5929c94e0ac1c6ce3489b081829fd41787e91a6 Mon Sep 17 00:00:00 2001 From: dead_horse Date: Wed, 9 Jul 2014 11:23:20 +0800 Subject: [PATCH] use mini-logger and error-formater --- common/logger.js | 82 +++++++++++------------------------------------- package.json | 9 +++--- 2 files changed, 24 insertions(+), 67 deletions(-) diff --git a/common/logger.js b/common/logger.js index dcc67b7b1..47420212b 100644 --- a/common/logger.js +++ b/common/logger.js @@ -15,73 +15,29 @@ * Module dependencies. */ -var util = require('util'); -var moment = require('moment'); -var logstream = require('logfilestream'); -var ms = require('ms'); +var formater = require('error-formater'); +var Logger = require('mini-logger'); var config = require('../config'); var mail = require('./mail'); var isTEST = process.env.NODE_ENV === 'test'; -var ONE_DAY = ms('1d'); var levels = ['info', 'warn', 'error']; -levels.forEach(function (catetory) { - var options = { - logdir: config.logdir, - duration: ONE_DAY, - nameformat: '[' + catetory + '.]YYYY-MM-DD[.log]' - }; - var stream = logstream(options); - function write(msg) { - var time = moment().format('YYYY-MM-DD HH:mm:ss.SSS'); - var subject = null; - if (msg instanceof Error) { - subject = msg.name; - var err = { - name: msg.name, - code: msg.code, - message: msg.message, - stack: msg.stack, - host: msg.host, - url: msg.url, - data: msg.data - }; - if (err.name === 'Error' && typeof err.code === 'string') { - err.name = err.code + err.name; - } - err.name += 'Exception'; - if (err.host) { - err.message += ' (' + err.host + ')'; - } - msg = util.format('%s nodejs.%s: %s\nURL: %s\nData: %j\n%s\n\n', - time, - err.name, - err.stack, - err.url, - err.data, - time - ); - } else { - msg = time + ' ' + util.format.apply(util, arguments) + '\n'; - } - - if (!isTEST) { - stream.write(msg); - if (config.debug) { - var level = catetory; - console.log('[' + level + '] ' + msg); - } else { - if (catetory === 'error' && subject) { - // send error email - var to = []; - for (var name in config.admins) { - to.push(config.admins[name]); - } - mail.error(to, subject, msg); - } - } - } - } - exports[catetory] = write; +module.exports = Logger({ + dir: config.logdir, + duration: '1d', + format: '[{category}.]YYYY-MM-DD[.log]', + stdout: config.debug && !isTEST, + errorFormater: errorFormater }); + +var to = []; +for (var name in config.admins) { + to.push(config.admins[name]); +} + +function errorFormater(err) { + var msg = formater.both(err); + mail.error(to, msg.json.name, msg.text); + return msg.text; +} diff --git a/package.json b/package.json index 4043e09f3..f166a3606 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "co-write": "0.3.0", "copy-to": "1.0.1", "debug": "1.0.2", + "error-formater": "1.0.2", "eventproxy": "0.3.1", "giturl": "0.0.3", "graceful": "0.1.0", @@ -29,10 +30,10 @@ "koa": "0.8.1", "koa-limit": "1.0.2", "koa-markdown": "0.0.3", - "koa-middlewares": "1.0.0", - "logfilestream": "0.1.0", + "koa-middlewares": "1.1.0", "marked": "0.3.2", "mime": "1.2.11", + "mini-logger": "0.1.0", "mkdirp": "0.5.0", "moment": "2.7.0", "ms": "0.6.2", @@ -44,7 +45,7 @@ "redis": "0.10.3", "semver": "2.3.1", "thunkify-wrap": "0.1.2", - "utility": "0.1.14" + "utility": "0.1.16" }, "devDependencies": { "autod": "~0.2.0", @@ -56,7 +57,7 @@ "jshint": "*", "mm": "0.2.1", "mocha": "*", - "pedding": "0.0.3", + "pedding": "1.0.0", "should": "4.0.4", "should-http": "0.0.1", "supertest": "0.13.0"