日志、过滤器
作者:互联网
一、mssql
-
默认端口 1433
-
默认数据库 用户名 sa
二、mysql
-
默认端口 3306
-
默认数据库 用户名 root
三、日志
public static void WriteLog(string log)
{
//获取当前目录
var baseDir = AppDomain.CurrentDomain.BaseDirectory+"/log/";
//文件名
var fileName = DateTime.Now.ToString("yyyyMMdd") + ".log";
//判断文件夹是否存在
if (!Directory.Exists(baseDir))
{
//不存在 创建文件夹
Directory.CreateDirectory(baseDir);
}
//完整路径
var newPath = baseDir + fileName;
//using 可以自动释放资源
using (FileStream fs = new FileStream(newPath, FileMode.Append,FileAccess.Write))
{
//借助 StreamWriter 来完成对文件的写操作
using (StreamWriter sw = new StreamWriter(fs))
{
sw.WriteLine(DateTime.Now+":"+log);
}
}
}
效果如下:
四、过滤器
在MVC中创建一个文件夹,添加两个类
public override void OnException(ExceptionContext filterContext)
{
//1、获取当前的异常行为
Exception ex = filterContext.Exception;
//2、写日志
FileHelper.WriteLog(ex.Message);
//3、重定向
filterContext.Result = new RedirectResult("/Default/Error");
//4、标记异常处理完成
filterContext.ExceptionHandled = true;
base.OnException(filterContext);
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if(filterContext.HttpContext.Session["UserName"]==null)
{
filterContext.Result = new RedirectResult("/Login/Index");
}
base.OnActionExecuted(filterContext);
}
登录的方法如下:
[HttpPost]
public ActionResult Login(string uname, string upass)
{
var result = loginBll.Login(uname, upass);
if (result!=null)
{
Session["UserName"] = result.UName;
FileHelper.WriteLog("用户名:" + uname + "登录成功");
return Json(1, JsonRequestBehavior.DenyGet);
}
else
{
FileHelper.WriteLog("用户名:" + uname + "登录失败");
return Json(0, JsonRequestBehavior.DenyGet);
}
}
标签:filterContext,baseDir,WriteLog,uname,过滤器,new,日志,public 来源: https://www.cnblogs.com/666l/p/15186920.html