local m = {} function m:printTT(content,...) local tab = 0 local out_list = {} local function printk(value,key,tab) if key == nil then return end if type(key) ~= "number" then key = tostring(key) else key = string.format("[%d]",key) end if type(value) == "table" then if key ~= nil then table.insert(out_list,tab .. key .. " =") end table.insert(out_list,tab .. "{") for k,v in pairs(value) do printk(v,k,tab .. "| ") end table.insert(out_list,tab .. "},") else local content if type(value) == "nil" or value == "^&nil" then value = "nil" elseif type(value) == "string" then value = string.format("\"%s\"",tostring(value)) else value = tostring(value) end content = string.format("%s%s = %s,",tab,value) table.insert(out_list,tostring(content)) end end local value = type(content) == "string" and string.format(content,...) or content local key = os.date("[\"%X\"]",os.time()) printk(value,"") local out_str = table.concat(out_list,"\n") print(out_str .. "\n") -- local logFileName = os.date("print_tab_%Y_%m_%d.log",os.time()) -- local logFileName = "a.log" -- local file = assert(io.open(logFileName,"a+")) -- file:write(out_str .. "\n") -- file:close() end --打印用户数据 function m:logUD(ud) local function tmp(MetaT,dSet) if MetaT then for _val,_val_type in pairs(MetaT) do if type(_val_type) ~= "userdata" then if not string.find(_val,"_") then table.insert(dSet,_val) end end end table.sort(dSet) dSet[tostring(MetaT)] = {} tmp(getMetatable(MetaT),dSet[tostring(MetaT)]) end end local resTb = {} tmp(getMetatable(ud),resTb) m:printTT(resTb) end return m
打印结果
[LUA-print] ["21:06:18"] = { | [1] = ".backup",| [2] = "create",| [3] = "createInstance",| [4] = "disableEffect",| [5] = "enableGlow",| [6] = "enableOutline",| [7] = "enableShadow",| [8] = "getAutoRenderSize",| [9] = "getEffectColor",| [10] = "getFontName",| [11] = "getFontSize",| [12] = "getLabelEffectType",| [13] = "getOutlineSize",| [14] = "getShadowBlurRadius",| [15] = "getShadowColor",| [16] = "getShadowOffset",| [17] = "getString",| [18] = "getStringLength",| [19] = "getStringValue",| [20] = "getTextAreaSize",| [21] = "getTextColor",| [22] = "getTextHorizontalAlignment",| [23] = "getTextVerticalAlignment",| [24] = "getType",| [25] = "init",| [26] = "isShadowEnabled",| [27] = "isTouchScaleChangeEnabled",| [28] = "new",| [29] = "setFontName",| [30] = "setFontSize",| [31] = "setString",| [32] = "setText",| [33] = "setTextAreaSize",| [34] = "setTextColor",| [35] = "setTextHorizontalAlignment",| [36] = "setTextVerticalAlignment",| [37] = "setTouchScaleChangeEnabled",| table: 0x010d7ebef0 = | { | | [1] = "addClickEventListener",| | [2] = "addTouchEventListener",| | [3] = "clone",| | [4] = "create",| | [5] = "dispatchFocusEvent",| | [6] = "enableDpadNavigation",| | [7] = "findNextFocusedWidget",| | [8] = "getActionTag",| | [9] = "getBottomBoundary",| | [10] = "getBottomInParent",| | [11] = "getCallbackName",| | [12] = "getCallbackType",| | [13] = "getCurrentFocusedWidget",| | [14] = "getCustomSize",| | [15] = "getLayoutParameter",| | [16] = "getLayoutSize",| | [17] = "getLeftBoundary",| | [18] = "getLeftInParent",| | [19] = "getPositionPercent",| | [20] = "getPositionType",| | [21] = "getRightBoundary",| | [22] = "getRightInParent",| | [23] = "getSize",| | [24] = "getSizePercent",| | [25] = "getSizeType",| | [26] = "getTopBoundary",| | [27] = "getTopInParent",| | [28] = "getTouchBeganPosition",| | [29] = "getTouchEndPosition",| | [30] = "getTouchMovePosition",| | [31] = "getVirtualRenderer",| | [32] = "getVirtualRendererSize",| | [33] = "getWorldPosition",| | [34] = "hitTest",| | [35] = "ignoreContentAdaptWithSize",| | [36] = "interceptTouchEvent",| | [37] = "isBright",| | [38] = "isClippingParentContainsPoint",| | [39] = "isEnabled",| | [40] = "isFlippedX",| | [41] = "isFlippedY",| | [42] = "isFocusEnabled",| | [43] = "isFocused",| | [44] = "isHighlighted",| | [45] = "isIgnoreContentAdaptWithSize",| | [46] = "isLayoutComponentEnabled",| | [47] = "isPropagateTouchEvents",| | [48] = "isSwallowTouches",| | [49] = "isTouchEnabled",| | [50] = "isUnifySizeEnabled",| | [51] = "new",| | [52] = "onFocusChange",| | [53] = "onTouch",| | [54] = "propagateTouchEvent",| | [55] = "requestFocus",| | [56] = "setActionTag",| | [57] = "setBright",| | [58] = "setBrightStyle",| | [59] = "setCallbackName",| | [60] = "setCallbackType",| | [61] = "setEnabled",| | [62] = "setFlippedX",| | [63] = "setFlippedY",| | [64] = "setFocusEnabled",| | [65] = "setFocused",| | [66] = "setHighlighted",| | [67] = "setLayoutComponentEnabled",| | [68] = "setLayoutParameter",| | [69] = "setPositionPercent",| | [70] = "setPositionType",| | [71] = "setPropagateTouchEvents",| | [72] = "setSize",| | [73] = "setSizePercent",| | [74] = "setSizeType",| | [75] = "setSwallowTouches",| | [76] = "setTouchEnabled",| | [77] = "setUnifySizeEnabled",| | [78] = "updateSizeAndPosition",| | table: 0x010d7bcd18 = | | { | | | [1] = "addProtectedChild",| | | [2] = "create",| | | [3] = "disableCascadeColor",| | | [4] = "disableCascadeOpacity",| | | [5] = "getProtectedChildByTag",| | | [6] = "new",| | | [7] = "removeAllProtectedChildren",| | | [8] = "removeAllProtectedChildrenWithCleanup",| | | [9] = "removeProtectedChild",| | | [10] = "removeProtectedChildByTag",| | | [11] = "reorderProtectedChild",| | | [12] = "sortAllProtectedChildren",| | | table: 0x010d6e0db0 = | | | { | | | | [1] = "add",| | | | [2] = "addChild",| | | | [3] = "addComponent",| | | | [4] = "addTo",| | | | [5] = "align",| | | | [6] = "boundingBox",| | | | [7] = "cleanup",| | | | [8] = "convertToNodeSpace",| | | | [9] = "convertToNodeSpaceAR",| | | | [10] = "convertToWorldSpace",| | | | [11] = "convertToWorldSpaceAR",| | | | [12] = "convertTouchToNodeSpace",| | | | [13] = "convertTouchToNodeSpaceAR",| | | | [14] = "create",| | | | [15] = "disableNodeEvents",| | | | [16] = "draw",| | | | [17] = "enableNodeEvents",| | | | [18] = "enumerateChildren",| | | | [19] = "fadeIn",| | | | [20] = "fadeOut",| | | | [21] = "fadeTo",| | | | [22] = "getActionByTag",| | | | [23] = "getActionManager",| | | | [24] = "getAnchorPoint",| | | | [25] = "getAnchorPointInPoints",| | | | [26] = "getBoundingBox",| | | | [27] = "getCameraMask",| | | | [28] = "getChildByName",| | | | [29] = "getChildByTag",| | | | [30] = "getChildren",| | | | [31] = "getChildrenCount",| | | | [32] = "getColor",| | | | [33] = "getComponent",| | | | [34] = "getContentSize",| | | | [35] = "getDescription",| | | | [36] = "getDisplayedColor",| | | | [37] = "getDisplayedOpacity",| | | | [38] = "getEventDispatcher",| | | | [39] = "getGLProgram",| | | | [40] = "getGLProgramState",| | | | [41] = "getGlobalZOrder",| | | | [42] = "getLocalZOrder",| | | | [43] = "getName",| | | | [44] = "getNodeToParentAffineTransform",| | | | [45] = "getNodeToParentTransform",| | | | [46] = "getNodeToWorldAffineTransform",| | | | [47] = "getNodeToWorldTransform",| | | | [48] = "getNormalizedPosition",| | | | [49] = "getNumberOfRunningActions",| | | | [50] = "getOpacity",| | | | [51] = "getOrderOfArrival",| | | | [52] = "getParent",| | | | [53] = "getParentToNodeAffineTransform",| | | | [54] = "getParentToNodeTransform",| | | | [55] = "getPhysicsBody",| | | | [56] = "getPosition",| | | | [57] = "getPosition3D",| | | | [58] = "getPositionX",| | | | [59] = "getPositionY",| | | | [60] = "getPositionZ",| | | | [61] = "getRotation",| | | | [62] = "getRotation3D",| | | | [63] = "getRotationSkewX",| | | | [64] = "getRotationSkewY",| | | | [65] = "getScale",| | | | [66] = "getScaleX",| | | | [67] = "getScaleY",| | | | [68] = "getScaleZ",| | | | [69] = "getScene",| | | | [70] = "getScheduler",| | | | [71] = "getSkewX",| | | | [72] = "getSkewY",| | | | [73] = "getTag",| | | | [74] = "getVertexZ",| | | | [75] = "getWorldToNodeAffineTransform",| | | | [76] = "getWorldToNodeTransform",| | | | [77] = "getZOrder",| | | | [78] = "hide",| | | | [79] = "ignoreAnchorPointForPosition",| | | | [80] = "init",| | | | [81] = "isCascadeColorEnabled",| | | | [82] = "isCascadeOpacityEnabled",| | | | [83] = "isIgnoreAnchorPointForPosition",| | | | [84] = "isOpacityModifyRGB",| | | | [85] = "isRunning",| | | | [86] = "isScheduled",| | | | [87] = "isVisible",| | | | [88] = "move",| | | | [89] = "moveBy",| | | | [90] = "moveTo",| | | | [91] = "new",| | | | [92] = "numberOfRunningActions",| | | | [93] = "onCleanup",| | | | [94] = "onEnter",| | | | [95] = "onEnterTransitionFinish",| | | | [96] = "onExit",| | | | [97] = "onExitTransitionStart",| | | | [98] = "onNodeEvent",| | | | [99] = "onUpdate",| | | | [100] = "pause",| | | | [101] = "registerScriptHandler",| | | | [102] = "removeAllChildren",| | | | [103] = "removeAllComponents",| | | | [104] = "removeChild",| | | | [105] = "removeChildByName",| | | | [106] = "removeChildByTag",| | | | [107] = "removeComponent",| | | | [108] = "removeFromParent",| | | | [109] = "removeFromParentAndCleanup",| | | | [110] = "removeSelf",| | | | [111] = "reorderChild",| | | | [112] = "resume",| | | | [113] = "rotate",| | | | [114] = "rotateBy",| | | | [115] = "rotateTo",| | | | [116] = "runAction",| | | | [117] = "scaleTo",| | | | [118] = "scheduleUpdate",| | | | [119] = "scheduleUpdateWithPriorityLua",| | | | [120] = "setActionManager",| | | | [121] = "setAdditionalTransform",| | | | [122] = "setAnchorPoint",| | | | [123] = "setCameraMask",| | | | [124] = "setCascadeColorEnabled",| | | | [125] = "setCascadeOpacityEnabled",| | | | [126] = "setColor",| | | | [127] = "setContentSize",| | | | [128] = "setEventDispatcher",| | | | [129] = "setGLProgram",| | | | [130] = "setGLProgramState",| | | | [131] = "setGlobalZOrder",| | | | [132] = "setLocalZOrder",| | | | [133] = "setName",| | | | [134] = "setNodeToParentTransform",| | | | [135] = "setNormalizedPosition",| | | | [136] = "setOnEnterCallback",| | | | [137] = "setOnExitCallback",| | | | [138] = "setOpacity",| | | | [139] = "setOpacityModifyRGB",| | | | [140] = "setOrderOfArrival",| | | | [141] = "setParent",| | | | [142] = "setPhysicsBody",| | | | [143] = "setPosition",| | | | [144] = "setPosition3D",| | | | [145] = "setPositionX",| | | | [146] = "setPositionY",| | | | [147] = "setPositionZ",| | | | [148] = "setRotation",| | | | [149] = "setRotation3D",| | | | [150] = "setRotationQuat",| | | | [151] = "setRotationSkewX",| | | | [152] = "setRotationSkewY",| | | | [153] = "setScale",| | | | [154] = "setScaleX",| | | | [155] = "setScaleY",| | | | [156] = "setScaleZ",| | | | [157] = "setScheduler",| | | | [158] = "setSkewX",| | | | [159] = "setSkewY",| | | | [160] = "setTag",| | | | [161] = "setUserObject",| | | | [162] = "setVertexZ",| | | | [163] = "setVisible",| | | | [164] = "setZOrder",| | | | [165] = "setonEnterTransitionDidFinishCallback",| | | | [166] = "setonExitTransitionDidStartCallback",| | | | [167] = "show",| | | | [168] = "sortAllChildren",| | | | [169] = "stopAction",| | | | [170] = "stopActionByTag",| | | | [171] = "stopActionsByFlags",| | | | [172] = "stopAllActions",| | | | [173] = "stopAllActionsByTag",| | | | [174] = "unregisterScriptHandler",| | | | [175] = "unscheduleUpdate",| | | | [176] = "update",| | | | [177] = "updateDisplayedColor",| | | | [178] = "updateDisplayedOpacity",| | | | [179] = "updateTransform",| | | | [180] = "visit",| | | | table: 0x010c765d50 = | | | | { | | | | | [1] = "getReferenceCount",| | | | | [2] = "release",| | | | | [3] = "retain",| | | | | table: 0x010c76cf18 = | | | | | { | | | | | | table: 0x010c76d208 = | | | | | | { | | | | | | },| | | | | },| | | | },| | | },| | },| },},