web 接口 调用 记日志

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010690818/article/details/80183486
        //获取请求参数信息 放在 public class ApiBaseController : Controller 里
        protected string PostParameter()
        {
            var byts = new byte[System.Web.HttpContext.Current.Request.InputStream.Length];
            System.Web.HttpContext.Current.Request.InputStream.Read(byts, 0, byts.Length);
            return System.Text.Encoding.UTF8.GetString(byts);
        }


namespace Sixcom.Common
{
    public class LogHelp
    {

        private static string UsePath;

        static LogHelp()
        {

                UsePath = AppDomain.CurrentDomain.BaseDirectory + @"Logs\";
          
        }


        /// <summary>
        /// 保存日志
        /// </summary>
        /// <param name="msg">要记录的信息</param>
        /// <param name="subfolder">保存路径的子文件夹( 多级之间用 '\' 分隔 例如:Car\info)</param>
        public static void Log(LogType type, string msg,string subfolder = "")
        {
            StreamWriter sw = null;
            try
            {
                //判断是否有子文件夹
                if (!string.IsNullOrWhiteSpace(subfolder))
                {
                    subfolder = subfolder + @"\";
                }

                string modules = $@"{UsePath}{subfolder}{type.ToString()}\";

                if (!Directory.Exists(modules))
                {
                    Directory.CreateDirectory(modules);
                }
                //文件名称
                string fileName = string.Format($"{DateTime.Now.Date.ToString("yyyyMMdd")}.txt");
                //日志路径+文件名 = 完全全路径
                string FullPath = Path.Combine(modules, fileName);
                sw = File.AppendText(FullPath);
                sw.WriteLine($"{DateTime.Now}   {msg}" );
                sw.WriteLine($"******************************");
            }
            catch (Exception ex)
            {
                //日志异常不捕获,不影响程序 流程
                //throw;
            }
            finally
            {
                if (sw != null)
                {
                    sw.Flush();
                    sw.Close();
                    sw.Dispose();
                }
            }
        }


        

    }

    /// <summary>
    /// 记录类型
    /// </summary>
    public enum LogType
    {

        /// <summary>
        /// 警告信息
        /// </summary>
        Debug = 0,

        /// <summary>
        /// 一般信息
        /// </summary>
        Info = 1,

        /// <summary>
        /// 警告信息
        /// </summary>
        Warn = 2,

        /// <summary>
        /// 异常信息
        /// </summary>
        Error = 3,

        /// <summary>
        /// 致命错误
        /// </summary>
        Fatal = 4,


    }

}



                //记录调用信息
                LogHelp.Log(LogType.Info, $@"【url】:{Request.RawUrl}
【参数】:{ PostParameter()}", @"ShopApi");

//打印后的效果如下:
//            2018 / 5 / 3 16:59:18   【url】:/ ShopApiOrder / GetOreturnStatusByCode
//【参数】:UnionId = 1 & CompanyId = 3 & ShopId = -1 & UserId = 66 & Code = XST1000218010500004
//* *****************************

 

猜你喜欢

转载自blog.csdn.net/u010690818/article/details/80183486