[ASP.NET MVC] 专案使用Log

在MVC专案下建立Log类别

public class LogWriter{    /// <summary>路径</summary>    private static string Path = "C:\\LogFile";    /// <summary>档案名称</summary>    private static string Name = "Log";    /// <summary>    /// 设定路径和名称    /// </summary>    /// <param name="NewPath">路径</param>    /// <param name="NewName">名称</param>    public static void SetPathAndName(string NewPath, string NewName)    {        Path = NewPath;        Name = NewName;    }        /// <summary>    /// 产生Log档    /// </summary>    public static void CreateLogger()    {        //如果此路径没有资料夹        if (!Directory.Exists(Path))        {            //新增资料夹            Directory.CreateDirectory(Path);        }        WriteLog("=======================================");        WriteLog("程式启动 : " + DateTime.Now.ToString());        WriteLog("=======================================");    }        /// <summary>    /// 写入Log    /// </summary>    /// <param name="log">Log内容</param>    public static void WriteLog(string log)    {        if (!Directory.Exists(Path))            CreateLogger();        using (StreamWriter sw = File.AppendText(Path + "\\" + Name))            sw.WriteLine(log);    }    /// <summary>    /// 写入Log    /// </summary>    /// <param name="LogType">Log类别</param>    /// <param name="ClassName">使用GetType的Name或FullName</param>    /// <param name="MethodName">使用MethodBase.GetCurrentMethod</param>    /// <param name="Message">Log内容</param>    /// <returns></returns>    public static void WriteLog(ELogType LogType, string ClassName, string MethodName, string Message)    {        if (!Directory.Exists(Path))            CreateLogger();        using (StreamWriter sw = File.AppendText(Path + "\\" + Name)){            sw.WriteLine($"[{LogType}] {Regex.Replace(ClassName, "Controller", string.Empty)}[{MethodName}] {Message}");        }    }}

建立Log用Enum

public class ConstEnum{    /// <summary>Log列举</summary>    public enum ELogType    {        /// <summary>资讯</summary>        INFO,        /// <summary>警告</summary>        WARN,        /// <summary>错误</summary>        ERROR    }}

在应用程式开始和结束的地方加入

namespace WebProjectName{    /// <summary>执行端</summary>    public class MvcApplication : System.Web.HttpApplication    {        /// <summary>应用程式开始</summary>        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);            //加入路由            RouteConfig.RegisterRoutes(RouteTable.Routes);            //封装JS和CSS档            BundleConfig.RegisterBundles(BundleTable.Bundles);                        //启动Log记录            LogWriter.SetPathAndName("C:\\LogFile", "Log");            LogWriter.CreateLogger();        }                /// <summary>应用程式结束</summary>        protected void Application_End()        {            LogWriter.WriteLog("=======================================");            LogWriter.WriteLog("程式结束Application_End : " + DateTime.Now.ToString());            LogWriter.WriteLog("=======================================");        }                /// <summary>程式出错</summary>        protected void Application_Error()        {            Exception ErrorMsg = Server.GetLastError();            LogWriter.WriteLog($"[Application_Error] Exception:{ErrorMsg.GetType().Name}({ErrorMsg.Message}) \nSource:{ErrorMsg.Source} \nStackTrace:{ErrorMsg.StackTrace}");        }    }}

使用方式

LogWriter.WriteLog(ELogType.INFO, GetType().Name, MethodBase.GetCurrentMethod().Name, "讯息");

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章