Add log4net to asp.net mvc to record error logs, mvclog4net

Source: Internet
Author: User

Add log4net to asp.net mvc to record error logs, mvclog4net

First, add the log4net dll. We recommend that you use nuget ....

Paste the configuration file

<? Xml version = "1.0" encoding = "UTF-8"?> <Configuration> <configSections> <section name = "log4net" type = "log4net. Config. Log4NetConfigurationSectionHandler, log4Net"/> </configSections> <! -- Log configuration start --> <log4net debug = "true"> <root> <level value = "ALL"/> <appender-ref = "SysAppender"/> <appender -ref = "AdoNetAppender"/> </root> <logger name = "WebLogger"> <! -- Configure the log level, if it is lower than this level, it will not be written into the log --> <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 "/> <l Ayout type = "log4net. layout. patternLayout "> <param name =" ConversionPattern "value =" & lt; hr color = red & gt; % n exception time: % d [% t] & lt; BR & gt; % n exception level: %-5 p & lt; BR & gt; % n exception class: % c [% x] & lt; BR & gt; % n % m & lt; BR & gt; % n & lt; HR Size = 1 & gt; "/> <! -- <ConversionPattern value = "% newline % n record time: % date % newline % n thread ID: [% thread] % n log level: %-5 level % n trace description: % 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 "/> <connectio NString 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. ra WTimeStampLayout "/> </parameter> <parameterName value =" @ Thread "/> <dbType value =" String "/> <size value =" 255 "/> <layout type = "log4net. layout. patternLayout "> <conversionPattern value =" % thread "/> </layout> </parameter> <parameterName value =" @ Level "/> <dbType value =" String & quot;/> <size value = "255"/> <layout type = "log4net. layout. patternLayout "> <conversionPattern value =" % lev El "/> </layout> </parameter> <parameterName value =" @ Logger "/> <dbType value =" String "/> <size value =" 255 ""/> <layout type =" log4net. layout. patternLayout "> <conversionPattern value =" % logger "/> </layout> </parameter> <parameterName value =" @ Method "/> <dbType value =" String & quot;/> <size value = "255"/> <layout type = "log4net. layout. patternLayout "> <conversionPattern value =" % method "/> </Layout> </parameter> <parameterName value =" @ Location "/> <dbType value =" String "/> <size value =" 1023" /> <layout type = "log4net. layout. patternLayout "> <conversionPattern value =" % location "/> </layout> </parameter> <parameterName value =" @ Message "/> <dbType value =" String & quot;/> <size value = "4000"/> <layout type = "log4net. layout. patternLayout "> <conversionPattern value =" % Message "/> </layout> </parameter> <parameterName value =" @ Exception "/> <dbType value =" String "/> <size value =" 8000 ""/> <layout type =" log4net. layout. predictionlayout "/> </parameter> </appender> </log4net> <! -- Log configuration ends --> </configuration>
This demo is a new xml file.
Create in the root directory of the website

Copy the xml configuration content,
Add the following sentence to Application_Start () of Global. asax.
// If log4net is used to read logs, initialize the configuration at the beginning of the application.
Log4net. Config. XmlConfigurator. Configure (new System. IO. FileInfo ("config \ log4net. config "));
Add it to AssemblyInfo. cs
[Assembly: log4net. Config. XmlConfigurator (ConfigFile = "Config \ log4net. config", Watch = false)]
The location of AssemblyInfo. cs is
Then add a filter.
Public class MyExceptionFileAttribute: HandleErrorAttribute {public override void OnException (ExceptionContext filterContext) {base. onException (filterContext); // process the error message and redirect it to a page LogHelper. writeLog (filterContext. exception. toString (); // page Jump to the error page filterContext. httpContext. response. redirect ("/Error.html ");}}

Create a tool class to write logs.

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

Finally

Add a global filter to FilterConfig. cs.
// Register the Error Filter
Public static void RegisterGlobalFilters (GlobalFilterCollection filters)
{
Filters. Add (new HandleErrorAttribute ());
// Register the Error Filter
Filters. Add (new MyExceptionFileAttribute ());
}
By default, the error log is stored in app_data, which is an htm file.
Saved to the mysql database
Database Structure


 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.