在EntityModel中,提供了一個簡單的日誌工具類LogRecorder
Nuget包
如果只單獨使用日誌功能,引用的包名爲:Agebull.Common.LogRecorder
其它Agebull族的Nuget包關係如下
日誌的配置
在appSettions.json的LogRecorder節
"LogRecorder": {
/*日誌記錄的地址*/
"txtPath": "c:\\log\\auth",
/*是否開啓跟蹤日誌*/
"monitor": true,
/*是否開啓SQL語句日誌*/
"sql": false,
"level": "Debug",
"console": true
}
說明
- txtPath如果使用了ZeroNet,會被強制覆蓋爲部署根目錄下的 logs 文件夾下
- level包括: Debug Trace Warning System Error五個級別
- sql日誌是一個亮點,它以日誌形式記錄EntityModel所執行的所有Sql語句,可正確跟蹤到SQL執行的問題,無需要編寫,打開配置即可。
- Monitor也是一個亮點,它以樹形方式記錄調用的層級關係及使用的資源信息.
如何使用
- 記錄異常日誌
try
{
//TODO:
}
catch (Exception e)
{
LogRecorder.Exception(e);
}
可在對應日期文件夾目錄下的 error.xxx.log中找到對應的日誌內容
xxx 爲數字序號,是爲了防止日誌文件過大而進行了拆分
- 記錄系統日誌
LogRecorder.SystemLog("%s:操作成功", "name更新");
可在對應日期文件夾目錄下的 system.xxx.log中找到對應的日誌內容
3. 記錄Debug日誌
LogRecorder.Debug("Debug");
可在對應日期文件夾目錄下的 debug.xxx.log中找到對應的日誌內容
4. 記錄Trace日誌
LogRecorder.Trace("Trace");
可在對應日期文件夾目錄下的 trace.xxx.log中找到對應的日誌內容
4. 記錄Warning日誌
LogRecorder.Warning("Warning");
可在對應日期文件夾目錄下的 system.xxx.log中找到對應的日誌內容
記錄跟蹤日誌
using (MonitorScope.CreateScope("Do it"))
{
using (MonitorScope.CreateScope("Step 1"))
{
LogRecorder.MonitorTrace("開始");
LogRecorder.MonitorTrace("成功");
}
using (MonitorScope.CreateScope("Step 2"))
{
LogRecorder.MonitorTrace("開始");
LogRecorder.MonitorTrace("結束");
}
}
日誌內容:
可在對應日期文件夾目錄下的 monitor.xxx.log中找到對應的日誌內容
Date:3/5/19 4:22:45 PM RequestId:Y584FKB75V Machine:ZeroCenter:WeichatBridge:7N31
標題 |狀態| 時間 | 用 時(ms) |
┌/SmallProgram/v1/erhcmember/is/getcard |開始| 16:22:45 |
├ApiRouter
├┬http://zero.yizuanbao.cn/SmallProgram/v1/erhcmember/is/getcard|開始| 16:22:45 |
│├┬HTTP |開始| 16:22:45 |
││├Headers:{"CONNECTION":["close"],"CONTENT-TYPE":["application/json; charset=UTF-8"],"ACCEPT-ENCODING":["gzip, deflate"],"COOKIE":[""],"HOST":["zero.yizuanbao.cn"],"REFERER":["http://127.0.0.1:58338/index.worker.html?mockType=alipay&referrerInfo=%7B%22appId%22%3A%222018051560091226%22%2C%22data%22%3A%7B%7D%7D&query="],"CONTENT-LENGTH":["75"]}
││├Method:POST
││├RequestId:-TTQ48L
││├Command:SmallProgram/v1/erhcmember/is/getcard
││├Context:{"name":"agebull","idcard_type":"01","idcard_value":"330304199106144520"}
││└HTTP |完成| 16:22:45 | 0.0/ 0.0|
│├┬CallZero |開始| 16:22:45 |
││├┬內部Zero調用 |開始| 16:22:45 |
│││├Station:SmallProgram,Command:v1/erhcmember/is/getcard
│││├Remte result:{"data":{"is_card":0},"rid":"-TTQ48L","oid":"37436171902528423","status":{"guide":null,"describe":null,"point":null,"code":-20010,"http":"200","msg":"卡不存在!"},"success":true}
│││├Result:{"data":{"is_card":0},"rid":"-TTQ48L","oid":"37436171902528423","status":{"guide":null,"describe":null,"point":null,"code":-20010,"http":"200","msg":"卡不存在!"},"success":true}
│││└內部Zero調用 |完成| 16:22:46 | 0.0/ 684.8|
││└CallZero |完成| 16:22:46 | 0.0/ 684.8|
│├UserState : Success
│├ZeroState : Ok
│├Result:{"data":{"is_card":0},"rid":"-TTQ48L","oid":"37436171902528423","status":{"guide":null,"describe":null,"point":null,"code":-20010,"http":"200","msg":"電子健康卡不存在!"},"success":true}
└http://zero.yizuanbao.cn/SmallProgram/v1/erhcmember/is/getcard|完成| 16:22:46 | 0.1/ 684.9|
└/SmallProgram/v1/erhcmember/is/getcard |完成| 16:22:46 | 0.1/ 686.0|
- 使用跟蹤範圍MonitorScope.CreateScope
可以多級嵌套 - 使用跟蹤輸出LogRecorder.MonitorTrace方法
- LogRecorder的其它方法不寫入跟蹤日誌
查看日誌
日誌目錄類似下圖