refactor: more small refactor

1. drop semver related code with no need to detect node version
2. drop license declaration in log4js.js for there is one in the project dir
3. other changes
This commit is contained in:
e-cloud 2016-07-16 13:49:24 +08:00
parent 4ac4ca2ca1
commit 9cc3a88bd7
9 changed files with 62 additions and 53 deletions

View File

@ -1,3 +1,5 @@
'use strict';
const cluster = require('cluster');
const log4js = require('../log4js');

View File

@ -79,7 +79,7 @@ function shutdown(cb) {
return cb();
}
openFiles.forEach(file => {
return openFiles.forEach(file => {
if (!file.write(eol, 'utf-8')) {
file.once('drain', () => {
file.end(complete);
@ -88,8 +88,6 @@ function shutdown(cb) {
file.end(complete);
}
});
return cb();
}
module.exports.appender = appender;

View File

@ -115,6 +115,6 @@ function shutdown(cb) {
});
}
exports.appender = fileAppender;
exports.configure = configure;
exports.shutdown = shutdown;
module.exports.appender = fileAppender;
module.exports.configure = configure;
module.exports.shutdown = shutdown;

View File

@ -192,5 +192,5 @@ function configure(config, options) {
);
}
exports.appender = fileAppender;
exports.configure = configure;
module.exports.appender = fileAppender;
module.exports.configure = configure;

View File

@ -1,6 +1,8 @@
'use strict';
const layouts = require('../layouts');
const mailgunFactory = require('mailgun-js');
let layout;
let config;
let mailgun;
@ -31,7 +33,7 @@ function configure(_config) {
layout = layouts.layout(_config.layout.type, _config.layout);
}
mailgun = require('mailgun-js')({
mailgun = mailgunFactory({
apiKey: _config.apikey,
domain: _config.domain
});

View File

@ -1,3 +1,5 @@
'use strict';
const levels = require('./levels');
const DEFAULT_FORMAT = ':remote-addr - -' +
' ":method :url HTTP/:http-version"' +

View File

@ -4,7 +4,6 @@ const dateFormat = require('./date_format');
const os = require('os');
const eol = os.EOL || '\n';
const util = require('util');
const semver = require('semver');
const layoutMakers = {
messagePassThrough: function () { return messagePassThroughLayout; },
basic: function () { return basicLayout; },
@ -31,10 +30,7 @@ function wrapErrorsWithInspect(items) {
if ((item instanceof Error) && item.stack) {
return {
inspect: function () {
if (semver.satisfies(process.version, '>=6')) {
return util.format(item);
}
return `${util.format(item)}\n${item.stack}`;
return util.format(item);
}
};
}
@ -82,11 +78,11 @@ function colorize(str, style) {
return colorizeStart(style) + str + colorizeEnd(style);
}
function timestampLevelAndCategory(loggingEvent, colour, timezoneOffest) {
function timestampLevelAndCategory(loggingEvent, colour, timezoneOffset) {
return colorize(
formatLogData(
'[%s] [%s] %s - '
, dateFormat.asString(loggingEvent.startTime, timezoneOffest)
, dateFormat.asString(loggingEvent.startTime, timezoneOffset)
, loggingEvent.level
, loggingEvent.categoryName
)

View File

@ -1,18 +1,5 @@
/* eslint no-prototype-builtins:1,no-restricted-syntax:[1, "ForInStatement"] */
'use strict';
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview log4js is a library to log in JavaScript in similar manner
@ -50,8 +37,11 @@ const layouts = require('./layouts');
const levels = require('./levels');
const loggerModule = require('./logger');
const Logger = loggerModule.Logger;
const connectLogger = require('./connect-logger').connectLogger;
require('./appenders/console');
const ALL_CATEGORIES = '[all]';
let appenders = {};
const loggers = {};
const appenderMakers = {};
const appenderShutdowns = {};
@ -62,12 +52,13 @@ const defaultConfig = {
replaceConsole: false
};
require('./appenders/console');
let appenders = {};
function hasLogger(logger) {
return loggers.hasOwnProperty(logger);
}
// todo: this method should be moved back to levels.js, but for loop require, need some refactor
levels.forName = function (levelStr, levelVal) {
let level;
if (typeof levelStr === 'string' && typeof levelVal === 'number') {
@ -116,7 +107,6 @@ function doesAppenderContainsLogger(appenderCategory, loggerCategory) {
return normalizedLoggerCategory.substring(0, normalizedAppenderCategory.length) === normalizedAppenderCategory;
}
/**
* Get a logger instance. Instance is cached on categoryName level.
* @static
@ -414,7 +404,7 @@ function loadAppender(appender, appenderModule) {
throw new Error(`Invalid log4js appender: ${util.inspect(appender)}`);
}
module.exports.appenders[appender] = appenderModule.appender.bind(appenderModule);
log4js.appenders[appender] = appenderModule.appender.bind(appenderModule);
if (appenderModule.shutdown) {
appenderShutdowns[appender] = appenderModule.shutdown.bind(appenderModule);
}
@ -463,32 +453,51 @@ function shutdown(cb) {
}
/**
*
* @name Log4js
* @name log4js
* @namespace Log4js
* @property getBufferedLogger
* @property getLogger
* @property getDefaultLogger
* @property hasLogger
* @property addAppender
* @property loadAppender
* @property clearAppenders
* @property configure
* @property shutdown
* @property replaceConsole
* @property restoreConsole
* @property levels
* @property setGlobalLogLevel
* @property layouts
* @property appenders
* @property appenderMakers
* @property connectLogger
*/
module.exports = {
getBufferedLogger: getBufferedLogger,
getLogger: getLogger,
getDefaultLogger: getDefaultLogger,
hasLogger: hasLogger,
const log4js = {
getBufferedLogger,
getLogger,
getDefaultLogger,
hasLogger,
addAppender: addAppender,
loadAppender: loadAppender,
clearAppenders: clearAppenders,
configure: configure,
shutdown: shutdown,
addAppender,
loadAppender,
clearAppenders,
configure,
shutdown,
replaceConsole: replaceConsole,
restoreConsole: restoreConsole,
replaceConsole,
restoreConsole,
levels: levels,
setGlobalLogLevel: setGlobalLogLevel,
levels,
setGlobalLogLevel,
layouts: layouts,
layouts,
appenders: {},
appenderMakers: appenderMakers,
connectLogger: require('./connect-logger').connectLogger
appenderMakers,
connectLogger
};
module.exports = log4js;
// set ourselves up
configure();

View File

@ -32,7 +32,7 @@ class LoggingEvent {
/**
* Logger to log messages.
* use {@see Log4js.getLogger(String)} to get an instance.
* use {@see log4js#getLogger(String)} to get an instance.
*
* @name Logger
* @namespace Log4js