ASP.NET MVC + log4net – Logging Into Database
SQL – Create Log Table CREATE TABLE [dbo].[Log] ( [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL PRIMARY KEY, [Date] [datetime] NULL, [Thread] [nvarchar](max) NULL, [Level] [nvarchar](max) NULL, [Logger] [nvarchar](max) NULL, [Message] [nvarchar](max) NULL, [Exception] [nvarchar](max) NULL ) |
web.conf <configuration> <configSections> … … <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <root> <level value="DEBUG" /> <appender-ref ref="ADONetAppender" /> </root> <appender name="ADONetAppender" type="log4net.Appender.ADONetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <connectionString value="… …" /> <commandText value="INSERT INTO [dbo].[Log4Net] ([Date], [Thread], [Level], [Logger], [Message], [Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" /> <parameter> <parameterName value="@log_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="@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="4000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%message"/> </layout> </parameter> <parameter> <parameterName value="@exception"/> <dbType value="String"/> <size value="2000"/> <layout type="log4net.Layout.ExceptionLayout"/> </parameter> </appender> </log4net> … … <configuration> |
C# – Global.asax.cs protected void Application_Start() { … … log4net.Config.XmlConfigurator.Configure(); } C# – Code for Take Log logger.Debug("Message"); logger.Info("Message"); logger.Warn("Message"); logger.Error("Message", new Exception("Exception Message")); logger.Fatal("Message", new Exception("Exception Message")); |