kitejs
Version:
the rpc framework Kite for Node.js
124 lines (123 loc) • 4.25 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
}
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
exports.__esModule = true;
var _ = require("util");
var caller = require("caller");
var moment = require("moment");
var events_1 = require("events");
var path_1 = require("path");
var fs_1 = require("fs");
exports.E_NOTICE = 1;
exports.E_DEBUG = 2;
exports.E_WARN = 4;
exports.E_FATAL = 8;
exports.E_ALL = 15;
var Logger = /** @class */ (function (_super) {
__extends(Logger, _super);
function Logger(options) {
var _this = _super.call(this) || this;
_this.buffer = [];
_this.useBuffer = false;
if (!options['logFile']) {
throw new Error('must given `logFile`.');
}
_this.logFile = options['logFile'];
_this.level = options['level'] || exports.E_ALL;
var __this = _this;
['notice', 'debug', 'warn', 'fatal'].forEach(function (fn) {
__this.on(fn, __this.to(fn));
});
return _this;
}
Logger.prototype.to = function (fn) {
var __this = this;
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
__this[fn].apply(__this, args);
};
};
Logger.prototype.writeSync = function (path, data) {
if (!fs_1.existsSync(path)) {
fs_1.writeFileSync(path, data);
}
else {
fs_1.appendFileSync(path, data);
}
};
Logger.prototype.write = function (path, data, callback) {
fs_1.writeFile(path, data, callback);
};
Logger.prototype.logging = function (tag, level, format) {
var args = [];
for (var _i = 3; _i < arguments.length; _i++) {
args[_i - 3] = arguments[_i];
}
if (!(this.level & level)) {
return;
}
format = "[" + tag + "] " + moment().format('YYYY-MM-DD HH:mm:ss') + " " + format + "\n";
if (this.useBuffer) {
this.buffer.push(_.format.apply(_, [format].concat(args)));
}
else {
var logFile = (level & (exports.E_FATAL | exports.E_WARN)) ? this.logFile + '.wf' : this.logFile;
this.writeSync(logFile, _.format.apply(_, [format].concat(args)));
}
};
Logger.prototype.notice = function (format) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.logging.apply(this, ['NOTICE', exports.E_NOTICE, format].concat(args));
};
Logger.prototype.debug = function (format) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.logging.apply(this, ['DEBUG', exports.E_DEBUG, format].concat(args));
};
Logger.prototype.warn = function (format) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.logging.apply(this, ['WARN', exports.E_WARN, format].concat(args));
};
Logger.prototype.fatal = function (format) {
var args = [];
for (var _i = 1; _i < arguments.length; _i++) {
args[_i - 1] = arguments[_i];
}
return this.logging.apply(this, ['FATAL', exports.E_FATAL, format].concat(args));
};
return Logger;
}(events_1.EventEmitter));
exports.Logger = Logger;
function logFileByCaller() {
return path_1.dirname(caller(2)) + '/kite.log';
}
function logger() {
return new Logger({
logFile: logFileByCaller(),
level: exports.E_ALL
});
}
exports.logger = logger;
;