UNPKG

gcl

Version:

码农村nodejs类库,完成解决回调陷阱,配置框架,IOC框架,统一多DB访问框架,可扩展日志框架和io/db/net/thread/pool 克隆表达式,加解密算法等等一系列基础类库和算法的实现

629 lines (527 loc) 21.1 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.NiResource = exports.DicResource = exports.FileResource = exports.LogTypeTrigger = exports.RegexTrigger = exports.AResource = exports.AFormatter = exports.ATrigger = exports.LogLisener = exports.Logger = exports.LogRecord = exports.LogType = undefined; var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of'); var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf); var _get2 = require('babel-runtime/helpers/get'); var _get3 = _interopRequireDefault(_get2); var _toArray2 = require('babel-runtime/helpers/toArray'); var _toArray3 = _interopRequireDefault(_toArray2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _tool = require('../common/tool'); var _tool2 = _interopRequireDefault(_tool); var _ni = require('../db/ni'); var _ni2 = _interopRequireDefault(_ni); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _tool3 = require('./tool'); var _tool4 = _interopRequireDefault(_tool3); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _events = require('events'); var _events2 = _interopRequireDefault(_events); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var LogType = exports.LogType = { /// <summary> /// 最终的需要显示的正确结果 ///</summary> RELEASE: 0, /// <summary> /// 程序错误 ///</summary> ERROR: 1, /// <summary> /// 可能引发错误的警告 ///</summary> WARN: 2, /// <summary> /// 程序日志信息(默认信息) ///</summary> INFO: 3, /// <summary> /// 程序调试信息 ///</summary> DEBUG: 4, /// <summary> /// 测试信息说明 ///</summary> TEST: 5, /// <summary> /// 全部的,一般作为默认参数使用 /// </summary> All: 255 }; var LogRecord = exports.LogRecord = function () { function LogRecord() { var logtype = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LogType.INFO; var needDateTime = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var needDiscript = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; var needSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; (0, _classCallCheck3.default)(this, LogRecord); var _pri = pri(this, { separator: '==================================================================\r\n', params: [], recordTime: new Date(), data: "", num: 0, source: "" }), _ = _pri._, __ = _pri.__; _.needDateTime = 'true' == ('' + needDateTime).toLowerCase(); _.needDiscript = 'true' == ('' + needDiscript).toLowerCase(); _.needSeparator = 'true' == ('' + needSeparator).toLowerCase(); } (0, _createClass3.default)(LogRecord, [{ key: 'clone', value: function clone() { var _pri2 = pri(this), _ = _pri2._, __ = _pri2.__; var ret = new LogRecord(_.logtype, _.needDateTime, _.needDiscript, _.needSeparator); ret.source = _.source; ret.num = _.num; ret.data = _.data; ret.params = _.params; return ret; } }, { key: 'toString', value: function toString(record) { var _pri3 = pri(this), _ = _pri3._, __ = _pri3.__; var rec = record || _; return [rec.needSeparator ? __.separator : ' ', rec.needDateTime ? rec.recordTime.toString('yyyy-MM-dd HH:mm:ss:S ') : '', rec.needDiscript ? LogType.map[rec.logtype] + " " : '', rec.num > 0 ? rec.num + " " : '', rec.data ? rec.data + " " : '', rec.params ? rec.params.join(' ') : '', rec.needSeparator ? '\r\n' + __.separator + '\r\n' : '\r\n'].join(''); } }, { key: 'params', get: function get() { var _pri4 = pri(this), _ = _pri4._, __ = _pri4.__; return __.params; }, set: function set() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var _pri5 = pri(this), _ = _pri5._, __ = _pri5.__; __.params = Array.prototype.slice.apply(data, [0, data.length]); } }, { key: 'recordTime', get: function get() { var _pri6 = pri(this), _ = _pri6._, __ = _pri6.__; return __.recordTime; } }, { key: 'data', get: function get() { var _pri7 = pri(this), _ = _pri7._, __ = _pri7.__; return __.data; }, set: function set() { var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var _pri8 = pri(this), _ = _pri8._, __ = _pri8.__; __.data = val; } }, { key: 'num', get: function get() { var _pri9 = pri(this), _ = _pri9._, __ = _pri9.__; return __.num; }, set: function set() { var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var _pri10 = pri(this), _ = _pri10._, __ = _pri10.__; __.num = val; } }, { key: 'source', get: function get() { var _pri11 = pri(this), _ = _pri11._, __ = _pri11.__; return __.source; }, set: function set() { var val = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var _pri12 = pri(this), _ = _pri12._, __ = _pri12.__; __.source = val; } }]); return LogRecord; }(); var Logger = exports.Logger = function () { function Logger() { var logrecord = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new LogRecord(); (0, _classCallCheck3.default)(this, Logger); var _pri13 = pri(this, { record: logrecord, event: new _events2.default.EventEmitter(), enable: true }), _ = _pri13._, __ = _pri13.__; } (0, _createClass3.default)(Logger, [{ key: 'setLisener', value: function setLisener(lisener) { var _pri14 = pri(this), _ = _pri14._, __ = _pri14.__; __.event.on('log', function (record) { return _tool2.default.tryC(function () { return lisener.log(record); }); }); __.event.on('close', function () { return _tool2.default.tryC(function () { return lisener.close(); }); }); } }, { key: 'dispose', value: function dispose() { var _pri15 = pri(this), _ = _pri15._, __ = _pri15.__; __.event.emit('close'); __.event.removeAllListeners(); } }, { key: 'log', value: function log(logtype, data, params, num) { var _pri16 = pri(this), _ = _pri16._, __ = _pri16.__; if (_.enable) { var record = __.record.clone(); record.logtype = logtype; record.data = data + ''; record.params = params; record.num = num; __.event.emit('log', record); } } }, { key: 'error', value: function error() { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } args.unshift(LogType.ERROR); this.log.apply(this, args); } }, { key: 'warn', value: function warn() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } args.unshift(LogType.WARN); this.log.apply(this, args); } }, { key: 'release', value: function release() { for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { args[_key3] = arguments[_key3]; } args.unshift(LogType.RELEASE); this.log.apply(this, args); } }, { key: 'info', value: function info() { for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { args[_key4] = arguments[_key4]; } args.unshift(LogType.INFO); this.log.apply(this, args); } }, { key: 'debug', value: function debug() { for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { args[_key5] = arguments[_key5]; } args.unshift(LogType.DEBUG); this.log.apply(this, args); } }, { key: 'test', value: function test() { for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { args[_key6] = arguments[_key6]; } args.unshift(LogType.TEST); this.log.apply(this, args); } }, { key: 'enable', get: function get() { var _pri17 = pri(this), _ = _pri17._, __ = _pri17.__; return __.enable; }, set: function set() { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; var _pri18 = pri(this), _ = _pri18._, __ = _pri18.__; __.enable = data; } }]); return Logger; }(); var LogLisener = exports.LogLisener = function () { function LogLisener() { var triggers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var formatter = arguments[1]; var resources = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var isAnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; (0, _classCallCheck3.default)(this, LogLisener); var _triggers = (0, _toArray3.default)(triggers), tri = _triggers.slice(0), _resources = (0, _toArray3.default)(resources), res = _resources.slice(0); var _pri19 = pri(this, { triggers: tri, formatter: formatter, resources: res, isAnd: isAnd }), _ = _pri19._, __ = _pri19.__; if (__.triggers.length == 0) throw new Error('triggers数组不能为空'); if (!__.formatter) throw new Error('formatter不能为空'); if (__.resources.length == 0) throw new Error('resources数组不能为空'); } (0, _createClass3.default)(LogLisener, [{ key: 'log', value: function log(record) { var _pri20 = pri(this), _ = _pri20._, __ = _pri20.__; var isLog = __.isAnd; __.triggers.forEach(function (v) { if (__.isAnd) isLog &= v.test(record);else isLog |= v.test(record); //if ((__.isAnd ? isLog > 0 : isLog == 0)) return false; }); if (isLog > 0) { var content = __.formatter.toString(record); _tool2.default.each(__.resources, function (v) { v.write(content);return false; }); } } }, { key: 'close', value: function close() { var _pri21 = pri(this), _ = _pri21._, __ = _pri21.__; _tool2.default.each(__.resources, function (v) { if (v.close) v.close();return false; }); } }]); return LogLisener; }(); var ATrigger = exports.ATrigger = function () { function ATrigger() { (0, _classCallCheck3.default)(this, ATrigger); } (0, _createClass3.default)(ATrigger, [{ key: 'test', value: function test(record) { return true; } }]); return ATrigger; }(); var AFormatter = exports.AFormatter = function () { function AFormatter() { (0, _classCallCheck3.default)(this, AFormatter); } (0, _createClass3.default)(AFormatter, [{ key: 'toString', value: function toString(data) { return data ? data.toString() : (0, _get3.default)(AFormatter.prototype.__proto__ || (0, _getPrototypeOf2.default)(AFormatter.prototype), 'toString', this).call(this); } }]); return AFormatter; }(); var AResource = exports.AResource = function () { function AResource() { (0, _classCallCheck3.default)(this, AResource); } (0, _createClass3.default)(AResource, [{ key: 'write', value: function write(data) {} }, { key: 'close', value: function close() {} }]); return AResource; }(); var RegexTrigger = exports.RegexTrigger = function (_ATrigger) { (0, _inherits3.default)(RegexTrigger, _ATrigger); function RegexTrigger(reg) { (0, _classCallCheck3.default)(this, RegexTrigger); var _this = (0, _possibleConstructorReturn3.default)(this, (RegexTrigger.__proto__ || (0, _getPrototypeOf2.default)(RegexTrigger)).call(this)); var _pri22 = pri(_this), _ = _pri22._, __ = _pri22.__; __.reg = new RegExp(reg); return _this; } (0, _createClass3.default)(RegexTrigger, [{ key: 'test', value: function test(record) { var _pri23 = pri(this), _ = _pri23._, __ = _pri23.__; return record.data.match(__.reg) != null || record.params.join(' ').match(__.reg) != null; } }]); return RegexTrigger; }(ATrigger); var LogTypeTrigger = exports.LogTypeTrigger = function (_ATrigger2) { (0, _inherits3.default)(LogTypeTrigger, _ATrigger2); function LogTypeTrigger() { var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LogType.INFO; (0, _classCallCheck3.default)(this, LogTypeTrigger); var _this2 = (0, _possibleConstructorReturn3.default)(this, (LogTypeTrigger.__proto__ || (0, _getPrototypeOf2.default)(LogTypeTrigger)).call(this)); pri(_this2, { min: min, max: max }); return _this2; } (0, _createClass3.default)(LogTypeTrigger, [{ key: 'test', value: function test(record) { var _pri24 = pri(this), _ = _pri24._, __ = _pri24.__; return record.logtype >= __.min && record.logtype <= __.max; } }]); return LogTypeTrigger; }(ATrigger); /** * 文件源服务 * @param {路径定义 会传入name参数} path * @param {传入Date.toString参数生成文件名} nameformat * @param {两次记录的等待时间} waittime */ var FileResource = exports.FileResource = function (_AResource) { (0, _inherits3.default)(FileResource, _AResource); function FileResource() { var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '.' + _tool2.default.environment.splitChar + 'log' + name + '.log'; var nameformat = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyyMMddHH'; var waittime = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 20000; (0, _classCallCheck3.default)(this, FileResource); var _this3 = (0, _possibleConstructorReturn3.default)(this, (FileResource.__proto__ || (0, _getPrototypeOf2.default)(FileResource)).call(this)); pri(_this3, { path: path, nameformat: nameformat, sb: _tool2.default.sb(), waittime: waittime, hasCreate: false }); return _this3; } (0, _createClass3.default)(FileResource, [{ key: 'write', value: function write(data) { var _pri25 = pri(this), _ = _pri25._, __ = _pri25.__; if (data) { if (__.sb.length == 0) { __.sb.append(data); _tool2.default.once(function () { return _tool2.default.tryC(function () { var name = _tool2.default.format(__.path, { name: new Date().toString(__.nameformat) }); if (!__.hasCreate) { __.hasCreate = true; var path = __.path.split(_tool2.default.environment.splitChar); path.forEach(function (k, i) { return path[i] = k.indexOf('.') < 1 ? k : null; }); _tool4.default.createDir(path.join(_tool2.default.environment.splitChar)).then(function () { _fs2.default.appendFile(name, __.sb.clear(), function () {}); }); } else _fs2.default.appendFile(name, __.sb.clear(), function () {}); }); }, __.waittime); } else { __.sb.append(data); } } } }]); return FileResource; }(AResource); /** * 文件夹源服务 * @param {文件夹定义 会传入dic参数} dic * @param {路径定义 会传入name参数} path * @param {传入Date.toString参数生成文件名} nameformat * @param {两次记录的等待时间} waittime */ var DicResource = exports.DicResource = function (_FileResource) { (0, _inherits3.default)(DicResource, _FileResource); function DicResource() { var dic = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var path = arguments[1]; var nameformat = arguments[2]; var waittime = arguments[3]; (0, _classCallCheck3.default)(this, DicResource); return (0, _possibleConstructorReturn3.default)(this, (DicResource.__proto__ || (0, _getPrototypeOf2.default)(DicResource)).call(this, dic + path, nameformat, waittime)); } return DicResource; }(FileResource); /** * 用于使用ni方法调用中间操作对象发送日志信息 * @param {模板名} templatename * @param {方法名} methodname * @param {中介者对象} middler */ var NiResource = exports.NiResource = function (_AResource2) { (0, _inherits3.default)(NiResource, _AResource2); function NiResource(templatename, methodname, middler) { (0, _classCallCheck3.default)(this, NiResource); var _this5 = (0, _possibleConstructorReturn3.default)(this, (NiResource.__proto__ || (0, _getPrototypeOf2.default)(NiResource)).call(this)); pri(_this5, { NiTemplateManager: new _ni2.default.NiTemplateManager(middler), templatename: templatename, methodname: methodname }); return _this5; } (0, _createClass3.default)(NiResource, [{ key: 'write', value: function write(data) { var _pri26 = pri(this), _ = _pri26._, __ = _pri26.__; if (data) { _tool2.default.tryC(function () { return __.NiTemplateManager.execute(__.templatename, __.methodname, { data: data }); }); } } }]); return NiResource; }(AResource); exports.default = { LogType: LogType, LogRecord: LogRecord, Logger: Logger, LogLisener: LogLisener, ATrigger: ATrigger, AFormatter: AFormatter, AResource: AResource, RegexTrigger: RegexTrigger, LogTypeTrigger: LogTypeTrigger, FileResource: FileResource, DicResource: DicResource, NiResource: NiResource }; var pri = _tool2.default.pris(); LogType.map = function () { var ret = {}; for (var k in LogType) { var v = LogType[k]; ret[v] = k; } return ret; }(); //# sourceMappingURL=log.js.map