[Groonga-commit] groonga/gcs [master] Use winston instead of custom logger

Zurück zum Archiv-Index

YUKI Hiroshi null+****@clear*****
Fri Nov 2 17:57:54 JST 2012


YUKI Hiroshi	2012-11-02 17:57:54 +0900 (Fri, 02 Nov 2012)

  New Revision: 42c7bbe78c5aa1e9c6f65f1bc35ab5f0b0ba6869
  https://github.com/groonga/gcs/commit/42c7bbe78c5aa1e9c6f65f1bc35ab5f0b0ba6869

  Log:
    Use winston instead of custom logger

  Modified files:
    lib/api/2011-02-01/batch.js
    lib/api/2011-02-01/configuration.js
    lib/api/2011-02-01/search.js
    lib/logger.js
    lib/server.js
    package.json

  Modified: lib/api/2011-02-01/batch.js (+3 -4)
===================================================================
--- lib/api/2011-02-01/batch.js    2012-11-01 19:03:59 +0900 (10e084d)
+++ lib/api/2011-02-01/batch.js    2012-11-02 17:57:54 +0900 (af93788)
@@ -1,5 +1,6 @@
 var BatchProcessor = require('../../batch/processor').Processor;
 var Domain = require('../../database').Domain;
+var logger = require('../../logger');
 
 function createErrorBody(errors) {
   errors = errors.map(function(error) {
@@ -53,8 +54,7 @@ exports.createHandler = function(context, config) {
     try {
       processor.validate(batches);
     } catch (error) {
-      if (config.errorLogger)
-        config.errorLogger.log(error);
+      logger.error(error);
 
       return response.send(JSON.stringify(error.result));
     }
@@ -65,8 +65,7 @@ exports.createHandler = function(context, config) {
         response.send(JSON.stringify(result));
       })
       .error(function(error) {
-        if (config.errorLogger)
-          config.errorLogger.log(error);
+        logger.error(error);
 
         response.send(error.message + '\n' + error.stack, 502);
       });

  Modified: lib/api/2011-02-01/configuration.js (+2 -2)
===================================================================
--- lib/api/2011-02-01/configuration.js    2012-11-01 19:03:59 +0900 (020615f)
+++ lib/api/2011-02-01/configuration.js    2012-11-02 17:57:54 +0900 (f1f61f4)
@@ -4,6 +4,7 @@ var Domain = require('../../database').Domain;
 var dateFormat = require('dateformat');
 var xmlbuilder = require('../../xmlbuilder');
 var ipv4 = require('../../ipv4');
+var logger = require('../../logger');
 var uuid = require('node-uuid');
 
 exports.version = path.basename(__dirname);
@@ -472,8 +473,7 @@ exports.createHandler = function(context, config) {
     try {
       handler(context, request, response, config);
     } catch (error) {
-      if (config.errorLogger)
-        config.errorLogger.log(error);
+      logger.error(error);
 
       var body = createCommonErrorResponse('InternalFailure', error);
       response.contentType('application/xml');

  Modified: lib/api/2011-02-01/search.js (+4 -6)
===================================================================
--- lib/api/2011-02-01/search.js    2012-11-01 19:03:59 +0900 (51fe36c)
+++ lib/api/2011-02-01/search.js    2012-11-02 17:57:54 +0900 (2eb8014)
@@ -2,6 +2,7 @@
 
 var SelectQuery = require('../../select-query').SelectQuery;
 var IndexField = require('../../database').IndexField;
+var logger = require('../../logger');
 
 var dummyRid = '000000000000000000000000000000000000000000000000000000000000000';
 
@@ -139,8 +140,7 @@ exports.createHandler = function(context, config) {
     try {
       selectQuery = new SelectQuery(request, context);
     } catch(error) {
-      if (config.errorLogger)
-        config.errorLogger.log(error);
+      logger.error(error);
 
       var errorData = { rid: dummyRid };
       if (error.message == 'validation error') {
@@ -154,14 +154,12 @@ exports.createHandler = function(context, config) {
 
     select(context, selectQuery,
       function(error, data, numFoundRecords, facets) {
-        if (error && config.errorLogger)
-          config.errorLogger.log(error);
+        logger.error(error);
 
         var finishedAt = new Date();
         var elapsedTime = finishedAt.getTime() - startedAt.getTime();
 
-        if (config.queryLogger)
-          config.queryLogger.log(JSON.stringify(selectQuery.selectOptions) + ' [' + elapsedTime + 'msec)');
+        logger.query(selectQuery, elapsedTime);
 
         if (error) {
           var body = createErrorBody({

  Modified: lib/logger.js (+30 -50)
===================================================================
--- lib/logger.js    2012-11-01 19:03:59 +0900 (73de8c0)
+++ lib/logger.js    2012-11-02 17:57:54 +0900 (debe1e4)
@@ -1,57 +1,37 @@
-var fs = require('fs');
-var path = require('path');
-var CLI = require(__dirname + '/../lib/command-line').CommandLineInterface;
+var winston = require('winston');
 
-function Logger(filePath) {
-  this.init(filePath);
-}
-Logger.prototype = {
-  init: function(filePath) {
-    filePath = CLI.resolve(filePath);
-    var flags = path.existsSync(filePath) ? 'a' : 'w';
-    this.stream = fs.createWriteStream(filePath, { flags: flags });
-  },
-  getTimestamp: function() {
-    var date = new Date();
+var loggers = {};
+
+function getLogger(context) {
+  if (loggers[context])
+    return loggers[context];
 
-    var offsetMinutes = date.getTimezoneOffset();
-    var timezoneOffset = ('0' + (Math.abs(offsetMinutes) / 60)).slice(-2) + ':' +
-                         ('0' + (Math.abs(offsetMinutes) % 60)).slice(-2);
-    if (offsetMinutes > 0) {
-      timezoneOffset = '-' + timezoneOffset;
-    } else {
-      timezoneOffset = '+' + timezoneOffset;
-    }
+  var logger = new winston.Logger({
+        transports: [
+          new winston.transports.Console()
+        ]
+      });
+  return loggers[context] = logger;
+}
 
-    return date.getFullYear() + '-' +
-             ('0' + (date.getMonth() + 1)).slice(-2) + '-' +
-             ('0' + (date.getDate())).slice(-2) + 'T' +
-             ('0' + (date.getHours())).slice(-2) + ':' +
-             ('0' + (date.getMinutes())).slice(-2) + ':' +
-             ('0' + (date.getSeconds())).slice(-2) + '.' +
-             date.getMilliseconds() +
-             timezoneOffset;
-  },
-  log: function(message) {
-    var timestamp = '[' + this.getTimestamp() + ']';
-    message.split('\n').forEach(function(line) {
-      this.stream.write(timestamp + ' ' + line + '\n');
-    }, this);
+function logError(error) {
+  var message = error;
+  if (error.stack) {
+    message = error + '\n' + error.stack;
   }
-};
+  getLogger('error').error(message);
+}
+exports.error = logError;
 
-function ErrorLogger(filePath) {
-  this.logger = new Logger(filePath);
+function logQuery(selectQuery, elapsedTime) {
+  var message = JSON.stringify(selectQuery.selectOptions) +
+                  ' (' + elapsedTime + 'msec)';
+  getLogger('query').info(message);
 }
-ErrorLogger.prototype = {
-  log: function(error) {
-    var message = error;
-    if (error.stack) {
-      message = error + '\n' + error.stack;
-    }
-    this.logger.log(message);
-  }
-};
+exports.query = logQuery;
 
-exports.Logger = Logger;
-exports.ErrorLogger = ErrorLogger;
+function setLogFilePath(context, path) {
+  var logger = getLogger(context);
+  logger.add(winston.transports.File, { filename: path });
+}
+exports.setLogFilePath = setLogFilePath;

  Modified: lib/server.js (+4 -6)
===================================================================
--- lib/server.js    2012-11-01 19:03:59 +0900 (e2f99da)
+++ lib/server.js    2012-11-02 17:57:54 +0900 (e88b708)
@@ -2,10 +2,8 @@ var express = require('express');
 var fs = require('fs');
 var path = require('path');
 var nroonga = require('./wrapped-nroonga');
-var CLI = require(__dirname + '/../lib/command-line').CommandLineInterface;
-var logger = require(__dirname + '/../lib/logger');
-var Logger = logger.Logger;
-var ErrorLogger = logger.ErrorLogger;
+var CLI = require('./command-line').CommandLineInterface;
+var logger = require('./logger');
 var api = require('./api');
 
 function prepareConfigurations(config) {
@@ -35,10 +33,10 @@ function prepareLoggers(application, config) {
     application.use(express.logger({ stream: accessLogStream }));
   }
   if (config.queryLogPath) {
-    config.queryLogger = new Logger(config.queryLogPath);
+    logger.setLogFilePath('query', CLI.resolve(config.queryLogPath));
   }
   if (config.errorLogPath) {
-    config.errorLogger = new ErrorLogger(config.errorLogPath);
+    logger.setLogFilePath('error', CLI.resolve(config.errorLogPath));
   }
 }
 

  Modified: package.json (+1 -0)
===================================================================
--- package.json    2012-11-01 19:03:59 +0900 (8a38129)
+++ package.json    2012-11-02 17:57:54 +0900 (9632aee)
@@ -27,6 +27,7 @@
     "mkdirp": "",
     "node-uuid": "",
     "nroonga": "",
+    "winston": "",
     "xml2js": "0.1.14",
     "xmlbuilder": "0.3.11"
   },
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Zurück zum Archiv-Index