版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第詳解Unity日志打印工具功能目錄一、日志工具功能二、Logger類三、LoggerMgr類四、上傳日志五、日志雙擊溯源問題
一、日志工具功能
封裝Debug類,需要實現(xiàn)功能:
1.控制所有日志是否打?。?/p>
2.除了Log,Warning,Error外,給更多日志種類(不同顏色);
3.格式化打印日志;
4.不定參數(shù),自動拼接成字符串;
5.上傳日志到服務器;
二、Logger類
1.控制日志打印
封裝Debug中關于Log的方法;
使用靜態(tài)方法,聲明靜態(tài)字段,控制log,warning,error是否打??;
Debug源碼中Log方法有兩個重載;
第二個參數(shù)context可以傳參GameObject,Hierarchy或者Project窗口中的預制體,雙擊Console日志會直接跳轉(zhuǎn)選中傳入的游戲物體;
我們可以將這個方法合并,第二個參數(shù)默認空;
2.色彩打印
打印不同顏色使用富文本;
string.Format("color={0}{1}/color",color,obj);
3.多參數(shù)拼接
之前使用Go語言的fmt.Println有個功能很好用,連續(xù)傳多個參數(shù)自動拼接;
publicstaticvoidLog(paramsobject[]messags)
if(!s_debugLogEnable)return;
stringmessage=string.Empty;
foreach(varitinmessags)
message+=it.ToString();
Debug.Log(message,null);
Logger.Log("Neterror:",error,"msgId:",msgId);
4.格式化打印
格式化打印封裝原本Debug.LogFormat方法;
publicstaticvoidLogFormat(stringformat,paramsobject[]args)
if(!s_debugLogEnable)return;
Debug.LogFormat(format,args);
}
三、LoggerMgr類
繼承MonoBehavior的單例;
初始化Logger中的三個控制打印的字段;
Application類中有收到日志消息觸發(fā)的事件LogMessageReceived;
監(jiān)聽這個事件;如果日志開關為關閉狀態(tài)return;
if(isOpenLog)
Logger.s_debugLogEnable=true;
Logger.s_warningLogEnable=true;
Logger.s_errorLogEnable=true;
Application.logMessageReceived+=(stringcondition,stringstackTrace,LogTypetype)=
switch(type)
caseLogType.Log:
if(!Logger.s_debugLogEnable)return;
break;
caseLogType.Warning:
if(!Logger.s_warningLogEnable)return;
break;
caseLogType.Error:
if(!Logger.s_errorLogEnable)return;
break;
};
四、上傳日志
LoggerMgr中初始化上傳日志信息;
方法寫在logger中,在LoggerMgr開始調(diào)用;
publicstaticvoidInit(stringurl)
LogUploader.SetUploadUrl(url);
//日期
vart=System.DateTime.Now.ToString("yyyyMMddhhmmss");
s_logFileSavePath=string.Format("{0}/output_{1}.log",Application.persistentDataPath,t);
Application.logMessageReceived+=OnLogCallBack;
}
OnLogCallBack方法中將日志和棧信息存儲成文件,等待上傳;
privatestaticvoidOnLogCallBack(stringcondition,stringstackTrace,LogTypetype)
s_logStr.Append(condition);
s_logStr.Append("\n");
s_logStr.Append(stackTrace);
s_logStr.Append("\n");
if(s_logStr.Length=0)return;
if(!File.Exists(s_logFileSavePath))
varfs=File.Create(s_logFileSavePath);
fs.Close();
using(varsw=File.AppendText(s_logFileSavePath))
sw.WriteLine(s_logStr.ToString());
s_logStr.Remove(0,s_logStr.Length);
}
LogUploader類
開啟協(xié)程上傳日志文件;
publicstaticvoidStartUploadLog(stringlogFilePath,stringdesc)
if(LOG_UPLOAD_URL==string.Empty)
return;
vargo=newGameObject("LogUploader");
varbhv=go.AddComponentLogUploader
bhv.StartCoroutine(bhv.UploadLog(logFilePath,LOG_UPLOAD_URL,desc));
}
在Logger類中同樣封裝上面的方法,所有的日志都通過Logger打??;
publicstaticvoidUploadLog(stringdesc)
LogUploader.StartUploadLog(s_logFileSavePath,desc);
}
五、日志雙擊溯源問題
以上的代碼有個很大的問題,現(xiàn)在我們雙擊不會回到調(diào)用Logger的地方,只會跳轉(zhuǎn)到Logger類中調(diào)用Debug.Log的地方;
有個很簡單的辦法解決,將上面代碼編譯成dll;
另外查找源碼也可以自己決定掉轉(zhuǎn)位置;
具體方法,通過反射獲日志取棧信息,根據(jù)Logger類返回的棧信息路徑,篩選出要跳轉(zhuǎn)的位置;
通過官方提供的方法跳轉(zhuǎn)到相應位置;
UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(stringfilename,intline);
六、調(diào)用
voidStart()
Logger.Log("aaaa");
Logger.LogFormat("{0}===={1}",111,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年甘肅省慶陽市西峰環(huán)宇中學春季招聘教師備考考試題庫及答案解析
- 2026泰安岱岳區(qū)事業(yè)單位初級綜合類崗位招聘工作人員(99人)考試備考試題及答案解析
- 2026廣東中山市東鳳鎮(zhèn)佛奧幼兒園教職工招聘2人筆試模擬試題及答案解析
- 2026中鐵建昆侖高速公路運營管理有限公司德遂高速公路路巡隊員招聘1人(重慶)參考考試題庫及答案解析
- 2026上半年玉溪師范學院招聘6人參考考試題庫及答案解析
- 第四單元7靜夜思
- 三臺公安公開招聘60名警務輔助人員備考考試試題及答案解析
- 2026廣東廣州南沙人力資源發(fā)展有限公司招聘編外工作人員2人考試參考題庫及答案解析
- 安裝樓頂施工方案(3篇)
- 兔年營銷活動策劃方案(3篇)
- 四川省南充市2024-2025學年高一上學期期末質(zhì)量檢測英語試題(含答案無聽力原文及音頻)
- 專題08解題技巧專題:圓中輔助線的作法壓軸題三種模型全攻略(原卷版+解析)
- 2024年全國職業(yè)院校技能大賽(節(jié)水系統(tǒng)安裝與維護賽項)考試題庫(含答案)
- 24秋人教版英語七上單詞表(Vocabulary in Each Unit)總表
- ISO 15609-1 2019 金屬材料焊接工藝規(guī)程和評定-焊接工藝規(guī)程-電弧焊(中文版)
- 肥胖患者麻醉管理
- 小鯉魚跳龍門電子版
- 2019年急性腦梗死出血轉(zhuǎn)化專家共識解讀
- 《混凝土結(jié)構(gòu)工程施工規(guī)范》
- 土地證延期申請書
- 硫乙醇酸鹽流體培養(yǎng)基適用性檢查記錄
評論
0/150
提交評論