zTraceVºÍzTraceQÊÇËùÓгÌÐòÈÕ־ʹÓõģ»zTracePºÍzTracePVÔòÊÇÓÃÀ´¸øSHELLÓõģ¬ÇÒÖ»ÓÃÔÚÃ÷È·µÄÌáʾÐÅÏ¢Êä³ö£¬±ÈÈçÔÚShowTaskName()º¯ÊýÀïʹÓá£SHELLµÄÔËÐдíÎóµÈÄÚÈÝ£¬Í¬ÑùÊǵ÷ÓÃzTraceV»òÊÇzTraceQ¡£TraceHexÊǸö¶îÍâµÄ·â×°£¬°´16½øÖÆ·½Ê½£¬Êä³öbuffÄÚÈÝ¡£ÕâÀïµÄV±íʾ°üº¬¸Õ¸ÕÄǸöverboseµ÷ÊÔÐÅÏ¢£¬¶øQÔò±íʾ²»°üº¬¡£
zTraceVºÍzTraceQ¶¼ÐèÒªÌṩlevel¡£ÒÔÇ°¸çÊÇ°ÑËüÃÇ×ö³Éº¯ÊýµÄ£¬µ«ºóÀ´·¢ÏÖ£¬ÓÐʱºòÓû§»á´«½ø·Ç·¨µÄlevel£»ÔÙ¾ÍÊÇ£¬º¯Êý»áÔì³É²»±ØÒªµÄ¿ªÏú£¬¼´±ãlevelÅжϲ»ÐèÒª´òÓ¡£¬Ò²»áÔì³ÉÏ൱´óµÄÔËÐпªÏú¡£Òò´Ë£¬ÏÖÔÚËüÃDZ»¸Ä³ÉÁ˺꣬Èç´ËÒ»À´£¬levelÅжÏÔÚÉú³É´òÓ¡º¯ÊýµÄ¶ÑÕ»ÐÅϢǰ£¬¾Í×öÁËÅжϣ¬±ÜÃâÁ˲»±ØÒªµÄ¶ÑÕ»±ä»¯¡£
¶ÔÓÚʹÓÃÕßÀ´Ëµ£¬ÕâЩҲ¶¼»¹ÊÇ͸Ã÷µÄ¡£Ö»ÓÐÔÙÏÂÃæµÄ¶¨Ò壬²ÅÊÇËûÃÇÒª¹ØÐĺÍʹÓõġ£¸ç¸ø³öµÄzTrace£¬·Ö5¸ö¼¶±ð£ºzTraceFatal£¬zTraceAlarm£¬zTraceError£¬zTraceWarn£¬zTraceInfo£¬ºÍzTraceDebug¡£Õë¶Ô²»Í¬µÄÐèÇó£¬ÓзÖΪV£¬Q£¬Hex£¬HexQËĸöÀà±ð¡£±à³ÌµÄʱºò£¬´óÔ¼95%µÄÇé¿öÏ£¬ÎÒÃÇÖ»ÓÃÄÇ5¸ö»ù±¾½Ó¿Ú£¨Ä¬ÈÏVerboseģʽ£©¡£
ÏÂÃæÊǸöÑùÀý£º
int DataBlockFreeCount(void* pool) { zDataPool_t *pPool = (zDataPool_t *)pool; if(!pool) { zTraceWarn(); return -1; } return pPool->freeCount; }
×¢ÒâÁË£¬levelÊǸöbitλ£¬Ã¿¸ölevel¶¼ÊǶÀÁ¢µÄ¡£ÕâÀï¸çÓõÄÊÇwarn£¬¶ø²»ÊÇÆäËülevel¡£½¨ÒéÊÇ£¬ÏµÍ³³õʼ»¯´úÂëÀ¶àÓÃfatal£¬ÒòΪÄÇ»á³ö´íÁ˾ÍÒâζ×Åϵͳû·¨ÔËÐУ»alarm¼¶±ð¶àÓÃÔÚϵͳÐÔ´íÎ󣬱íʾϵͳÒѾû·¨·þÎñÁË£»error¼¶±ðÔò²»ÒªËæ±ãÓÃÓÚÔËÐдíÎó£¬Ö»ÄÜÓÃÓÚ±àÂë´íÎó£»warn¼¶±ðÓÃÓÚÒµÎñ»òÊÇÒ»°ã³ÌÐòÔËÐдíÎó£»info¼¶±ðר¹©Êä³öÖ÷ÒªÒµÎñÂß¼£¬±ÈÈç½Ó¿ÚÏûÏ¢µÄÊä³ö£¬ÓÃÓÚ¶¨Î»ÒµÎñ¹ÊÕÏ£»debug¼¶±ð¾ÍÊÇ¿ª·Å¸ø³ÌÐòÔ±Óõģ¬ÏëÓþÍÓðɣ¡
info¼¶±ðÆäʵ¿ÉÒÔ±»À©Õ¹³ÉmsginfoºÍruninfoµÄ£¬ÄÇÑù¿ÉÄܸüºÃÓá£ÁíÍ⣬level¿ÉÒÔ¶¨Òå³É32bitsµÄ£¬ÄÇÑùµÄ»°£¬Ó¦ÓóÌÐò¿ÉÒÔ°Ñinfo¼¶±ðÀ©Õ¹³ÉÈô¸É¸öfeatureÏà¹ØµÄlevel¡£
ÔÚ³ÌÐòÉè¼ÆÖУ¬³ýÁËר¹©ÖжϵÈÐèҪƵ·±µ÷ÓøßЧ´¦Àí³¡ºÏʹÓõĴúÂ룬zTraceûʲôÏÞÖÆ¡£¶øÇÒ£¬zTrace²»ÐèҪʹÓÃÇ°×ö³õʼ»¯(g_zTraceLock±àÒë³õʼ»¯³Éunlock)£¬Òò´Ë³ÌÐò¿ÉÒÔÔÚÈκÎʱ¼äʹÓá£
ÈçºÎ×öµ½ÈÃzTrace¸ù¾ÝÄ£¿é»òÊÇÏß³ÌÀ´¶¨ÖÆÈÕÖ¾Êä³ö¼¶±ð£¿ÔÚzTrace±à³Ì´ó¼Ò¿´µ½µÄÑù×ÓÇ°£¬ÎÒÊÇÓÃÄ£¿éºÅÀ´¶¨ÖÆÊä³öµÄ¡£µ«ÄÇô×ö£¬¾ÍÐèÒªÔÚzTraceµÄ²ÎÊýÀïÌṩģ¿éºÅ¡£Õâô×öͦºÃµÄ£¬¿ÉÒÔ°ÑÒ»¸öÈÎÎñÇиî³É¼¸¸ö²»Í¬µÄ¹¦ÄÜÄ£¿éÀ´¶¨ÖÆÈÕÖ¾¼¶±ð£»È±µãÊÇ£¬ºÜ¶àº¯ÊýÊǹ«Óõģ¬¶øÇÒÓ¦ÓÃÖУ¬³£³£¿´µ½´òÓ¡ºó£¬È´²»ÖªµÀµ½µ×ÊÇÄĸöÈÎÎñ´òÓ¡µÄ¡£ÓÚÊÇ£¬ÂýÂýµÄ£¬¾ÍÑݽøµ½ÏÖÔÚµÄÑù×Ó£º¸ù¾ÝÏß³ÌÀ´¾ö¶¨¼¶±ð¡£
Ϊ±ÜÃâ²»±ØÒªµÄCPU¿ªÏú£¬zTraceÊ×ÏÈÅжÏÊÇ·ñʹÓÃcommonµÄlevelÅäÖã»Ö»ÓÐÔÚµ÷ÊÔ״̬£¨Õâʱºò£¬ÐÔÄܲ»ÔÙÖØÒª£©£¬²Å»á³öÏÖ¶¨ÖƵÄlevel¡£µ±È»£¬Õë¶ÔÏ̵߳Ķ¨ÖÆlevelÒ²²¢²»ÊÇÄÇô¿ÉÅ£¬Ö»²»¹ý΢΢¶àÕ¼ÓõãCPU°ÕÁË¡£
ÔÚ½áÊøÇ°£¬¸ç½¨ÒéʹÓÃÕ߶àÀûÓÃzTraceLevelSetº¯Êý¡£±ÈÈ磬ÒÔÇ°ÎÒ×öµç»°½»»»ÏµÍ³£¬»áÔÚÏûÏ¢Èë¿Ú´¦£¬¶Ô½«Ö÷¡¢±»½Ðµç»°ºÅÂëͬ¸ú×ÙÁбí½øÐбȶԣ¬µ±·¢ÏÖÐèÒª¸ú×Ùʱ£¬»áʹÓÃzTraceLevelSetÖÃÈÕÖ¾info¼¶±ð£¬¶ø´¦ÀíÍêÏûÏ¢ºó£¬ÔòÖØÖóÉĬÈϼ¶±ð¡£Ö®Ç°ÎÒ½²×´Ì¬»ú±à³ÌµÄʱºò£¬Ìáµ½ÁËFsmTrace¡£ÔÚʹÓÃÖУ¬FsmTraceÒ»ÑùÐèҪѡÔñÐÔµÄtrace£¬ÄÇÊÇͨ¹ýtraceIdÀ´¿ØÖƵġ£
ºÃÁË£¬²î²»¶à½²ÍêÁË¡£zTraceËäºÃ£¬µ«ÈÔÐèÅäºÏÆäËüÊÖ¶ÎʹÓ㬱ÈÈçEOSµÈ£¬¾ø²»¿ÉÆ«·Ï¡£×öÈκÎϵͳ£¬¶¼Ó¦¸ÃÄ¿±ê“5·ÖÖÓÕÒµ½ÎÊÌ┣¬“û±ØÒªÖØÏÖ¹ÊÕÏ”¡£µ±È»£¬¿ª·¢¹¤×÷Á¿Ò²ÖÁÉÙ»á¶à³öÒ»±¶¡£
¡¡