Log4Net獲取異常資訊並寫入Mysql資料庫
阿新 • • 發佈:2018-11-24
第一步:
引用相關的dll外掛:log4net.dll和Mysql.Data.dll
第二步:新增log4net.config檔案。
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <appender name="AdoNetAppender_MySql" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1"/> <param name="ConnectionType" value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"/> <param name="ConnectionString" value="server=localhost;database=lognet;Uid=root;Pwd=12345;"/> <commandText value="INSERT INTO logdetails (LogDate,LogThread,LogLevel,LogLogger,LogActionClick,LogMessage,UserName,UserIP) VALUES (@log_date, @thread, @log_level, @logger, @ActionsClick, @message,@UserName,@UserIP)"/> <parameter> <parameterName value="@log_date"/> <dbType value="DateTime"/> <layout type="log4net.Layout.RawTimeStampLayout"/> <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss}" /> </parameter> <parameter> <parameterName value="@thread"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread"/> </layout> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <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="@message" /> <dbType value="String" /> <size value="3000" /> <layout type="Log4NetApply.MyLayout"> <conversionPattern value="%property{Message}" /> </layout> </parameter> <parameter> <parameterName value="@ActionsClick" /> <dbType value="String" /> <size value="4000" /> <layout type="Log4NetApply.MyLayout" > <conversionPattern value = "%property{ActionsClick}"/> </layout> </parameter> <parameter> <parameterName value="@UserName" /> <dbType value="String" /> <size value="30" /> <layout type="Log4NetApply.MyLayout" > <conversionPattern value = "%property{UserName}"/> </layout> </parameter> <parameter> <parameterName value="@UserIP" /> <dbType value="String" /> <size value="20" /> <layout type="Log4NetApply.MyLayout" > <conversionPattern value = "%property{UserIP}"/> </layout> </parameter> </appender> <root> <level value="ALL"/> <appender-ref ref="AdoNetAppender_MySql"/> </root> <logger name="*"> <level value="ALL" /> <appender-ref ref="AdoNetAppender_MySql" /> </logger> </log4net> </configuration>
第三步:新增自定義異常類Log4Netclass(具體我不寫了,後面我會給出程式碼連線)
第四步:修改Global.asax檔案
void Application_Start(object sender, EventArgs e) { // 在應用程式啟動時執行的程式碼 XmlConfigurator.Configure(); BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterOpenAuth(); RouteConfig.RegisterRoutes(RouteTable.Routes); }
第五步:在AssemblyInfo.cs檔案中新增
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]