200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > asp.net mvc中加入log4net记录错误日志

asp.net mvc中加入log4net记录错误日志

时间:2019-07-06 15:21:48

相关推荐

asp.net mvc中加入log4net记录错误日志

直接上代码示例:/aff36f2547514cfefe129ebb8ccb28ef

首先添加加log4net的dll,推荐用nuget....

贴上配置文件

<?xml version="1.0" encoding="utf-8" ?><configuration><configSections><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4Net" /></configSections><!--日志的配置开始--><log4net debug="true"><root><level value="ALL" /><appender-ref ref="SysAppender" /><appender-ref ref="AdoNetAppender" /></root><logger name="WebLogger"><!--配置日志的级别,低于此级别的就不写到日志里面去--><level value="DEBUG" /></logger><appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net"><param name="File" value="App_Data/" /><param name="AppendToFile" value="true" /><param name="RollingStyle" value="Date" /><param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.htm&quot;" /><param name="StaticLogFileName" value="false" /><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n &lt;HR Size=1&gt;" /><!--<conversionPattern value="%newline %n记录时间:%date %newline %n 线程ID:[%thread] %n日志级别: %-5level %n跟踪描述:%message%newline %n"/>--></layout></appender><appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"><bufferSize value="1" /><connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /><connectionString value="server=localhost;port=3306;database=jianzheng;uid=root;pwd=svse;" /><commandText value="INSERT INTO `TestSysLog` (`Date`, `Thread`, `Level`, `Logger`, `Method`, `Location`,`Message`, `Exception`) VALUES (@Date, @Thread, @Level, @Logger, @Method,@Location,@Message, @Exception)" /><parameter><parameterName value="@Date" /><dbType value="DateTime" /><layout type="log4net.Layout.RawTimeStampLayout" /></parameter><parameter><parameterName value="@Thread" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%thread" /></layout></parameter><parameter><parameterName value="@Level" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%level" /></layout></parameter><parameter><parameterName value="@Logger" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%logger" /></layout></parameter><parameter><parameterName value="@Method" /><dbType value="String" /><size value="255" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%method" /></layout></parameter><parameter><parameterName value="@Location" /><dbType value="String" /><size value="1023" /><layout type="log4net.Layout.PatternLayout" ><conversionPattern value="%location" /></layout></parameter><parameter><parameterName value="@Message" /><dbType value="String" /><size value="4000" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message" /></layout></parameter><parameter><parameterName value="@Exception" /><dbType value="String" /><size value="8000" /><layout type="log4net.Layout.ExceptionLayout" /></parameter></appender></log4net><!--日志的配置结束--></configuration>

本demo里是新建的一个xml文件。

在网站根目录新建如图:

把xml配置内容copy进去,

在Global.asax的Application_Start()中加入下面的一句

//读取日志 如果使用log4net,应用程序一开始的时候,都要进行初始化配置

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("config\\log4net.config"));

在AssemblyInfo.cs里加入

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Config\\log4net.config", Watch = false)]

AssemblyInfo.cs的位置在如图:

然后添加一个过滤器

public class MyExceptionFileAttribute : HandleErrorAttribute{public override void OnException(ExceptionContext filterContext){base.OnException(filterContext);//处理错误消息,将其跳转到一个页面LogHelper.WriteLog(filterContext.Exception.ToString());//页面跳转到错误页面filterContext.HttpContext.Response.Redirect("/Error.html");}}

还要建一个工具类,用来写日志。

public class LogHelper{public static void WriteLog(string txt){ILog log = LogManager.GetLogger("log4netlogger");log.Error(txt);}}

最后还要在

FilterConfig.cs中加入全局过滤器

//注册错误过滤器

public static void RegisterGlobalFilters(GlobalFilterCollection filters)

{

filters.Add(new HandleErrorAttribute());

//注册错误过滤器

filters.Add(new MyExceptionFileAttribute());

}

默认把错误日志存在app_data中,为htm文件。

存到mysql数据库中了

数据库结构如图:

注意:Mysql.Data与Connector版本都要是6.8.3才能成功。其他版本需要自行测试了

connectionType:见:/gaocong/p/4699103.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。