2017年5月15日 星期一

Log to MongoDB (紀錄API)

MongoDB的欄位名稱

LionSpeedAPILog
SeqID
For MongoDB Id  (Object Id)

WebDomain
X旅 Xtravel,  X

WebCode
網站別 (xxx,xxx,xxx)

WebProject
xproject : xxxproject , 團體xx….

JobAction
目前動作 : Start 執行程序啟動, End 執行程序完成, Execution 執行中

JobType
狀態 : Error 錯誤, Warning警告, Info 資訊

HttpSessionID
前端網站Session ID

APIToken
傳入API Token

RefPageUrl
呼叫API的前一頁面的URL

PageUrl
呼叫API 的那個頁面的URL

APIUrl
API 的URL

APIResult
API 回傳值(Json)

StatusCode
API回傳 StatusCode

CreateDateTime
建立時間

Message
訊息(錯誤、警告、資訊)

StatusCode
API回傳 StatusCode

CreateDateTime
建立時間

Message
訊息(錯誤、警告、資訊)


對應的Model欄位

(這裡請在管理方案的NuGet套件加入 MongoDB.Driver  才能using相關內容 )
using MongoDB.Bson;     
using MongoDB.Driver;    
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LightSpeed.B2C.Utility
{
    public class APILogModel
    {
        ///// <summary>
        ///// For MongoDB Id 
        ///// </summary>
        //[MongoDB.Bson.Serialization.Attributes.BsonId]
        //public ObjectId Id { get; set; }

        /// <summary>
        /// xxxxx
        /// </summary>
        public string WebDomain { get; set; }
        /// <summary>
        /// 網站別 (xxx,xxx,xxx)
        /// </summary>
        public string WebCode { get; set; }
        /// <summary>
        /// xproject : xxxproject , 團體xx…..以此類推(依子網域)
        /// </summary>
        public string WebProject { get; set; }
        /// <summary>
        /// 目前動作 : Start 執行程序啟動, End 執行程序完成, Execution 執行中
        /// </summary>
        public string JobAction { get; set; }
        /// <summary>
        /// 狀態 : Error 錯誤, Warning警告, Info 資訊
        /// </summary>
        public string JobType { get; set; }
        /// <summary>
        /// 前端網站Session ID
        /// </summary>
        public string HttpSessionID { get; set; }
        /// <summary>
        /// 傳入API Token
        /// </summary>
        public string APIToken { get; set; }
        /// <summary>
        /// 上一頁的URL
        /// </summary>
        public string RefPageUrl { get; set; }
        /// <summary>
        /// 頁面的URL
        /// </summary>
        public string PageUrl { get; set; }
        /// <summary>
        /// 呼叫API 的URL
        /// </summary>
        public string APIUrl { get; set; }
        /// <summary>
        /// API 回傳值(Jason)
        /// </summary>
        public string APIResult { get; set; }
        /// <summary>
        /// 訊息(錯誤、警告、資訊)
        /// </summary>
        public string Message { get; set; }
        /// <summary>
        /// 建立時間
        /// </summary>
        public DateTime CreateDateTime { get; set; }
        /// <summary>
        /// API回傳 StatusCode
        /// </summary>
        public string StatusCode { get; set; }

    }
}

 寫入Log到MongoDB(xx.cs)    .CS檔的部分

 //Debug.WriteLine(string.Format("{0} - {1}", "GetLogStart", DateTime.Now.ToString()));  測試Log紀錄時間--始

                        string PageUrl = HttpContext.Current.Request.Url.AbsoluteUri;
                        string RefPageUrl = HttpContext.Current.Request.UrlReferrer.AbsoluteUri;
                        LogToMongo LogMongo = new LogToMongo();
                        APILogModel APILog = new APILogModel();
                        APILog.APIToken = data.AccessToken;
                        APILog.RefPageUrl = RefPageUrl;
                        APILog.PageUrl = PageUrl;
                        APILog.APIUrl = address;
                        APILog.CreateDateTime = data.RefreshDateTime;
                        APILog.JobAction = "Start";
                        APILog.JobType = "Info";
                        LogMongo.StartFireAndForgot(APILog);

 //Debug.WriteLine(string.Format("{0} - {1}", "GetLogStart", DateTime.Now.ToString()));  測試Log紀錄時間--末