UNPKG

kitejs

Version:

the rpc framework Kite for Node.js

124 lines (123 loc) 4.25 kB
"use strict"; 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; ;