UNPKG

md5-fight-plus

Version:

83 lines (82 loc) 3.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogger = exports.Level = exports.onAttack = exports.onUnderAttack = exports.RoundStart = void 0; const fs_1 = require("fs"); const lodash_1 = require("lodash"); exports.RoundStart = "RoundStart"; exports.onUnderAttack = "onUnderAttack"; exports.onAttack = "onAttack"; //消息级别:Level(info,warning,error var Level; (function (Level) { Level[Level["error"] = 0] = "error"; Level[Level["warn"] = 1] = "warn"; Level[Level["info"] = 2] = "info"; Level[Level["http"] = 3] = "http"; Level[Level["debug"] = 4] = "debug"; Level[Level["system"] = 5] = "system"; })(Level || (exports.Level = Level = {})); //根据消息级别来归类Log //根据时间顺序来归类Log const createLogger = (options) => { const LogContainer = []; const add = (level, type = "unknown", message) => { const players = options.battleField.players; const newLog = { message, time: new Date(), level, type, players: { [players.left.name]: (0, lodash_1.cloneDeep)((0, lodash_1.omit)(players.left, ["hooks", "battleField"])), [players.right.name]: (0, lodash_1.cloneDeep)((0, lodash_1.omit)(players.right, ["hooks", "battleField"])), }, }; LogContainer.push(newLog); return LogContainer.length - 1; }; const addError = (message, type) => add(Level.error, type, message); const addWarn = (message, type) => add(Level.warn, type, message); const addInfo = (message, type) => add(Level.info, type, message); const addHttp = (message, type) => add(Level.http, type, message); const addDebug = (message, type) => add(Level.debug, type, message); const addSystem = (message, type) => add(Level.system, type, message); const getByLevel = (level) => { return LogContainer.filter((item) => item.level === level); }; const getByType = (type) => { return LogContainer.filter((item) => item.type === type); }; const getByMessage = (message) => { return LogContainer.filter((item) => item.message.includes(message)); }; const getByScopeLevel = (minLevel, maxLevel) => { return LogContainer.filter((item) => { return item.level <= maxLevel && item.level >= minLevel; }); }; const storageLogs = (callback) => { if (options.mode === "JSON" && options.filePath) { (0, fs_1.writeFile)(options.filePath, JSON.stringify(LogContainer), (err) => callback(err)); return; } //用户自己处理Log callback(LogContainer); }; return { add, addError, addWarn, addDebug, addInfo, addHttp, addSystem, getByLevel, getByScopeLevel, getByType, getByMessage, storageLogs, LogContainer, }; }; exports.createLogger = createLogger;