Log4net 1.2.10.0 ~upd~ -
public class CustomMemoryAppender : log4net.Appender.AppenderSkeleton
Introduction log4net is a popular, open-source logging framework for the .NET ecosystem, ported from the highly successful log4j (Java). Version 1.2.10.0 , released under the Apache License 2.0, represents a stable and widely adopted release that balances robustness with essential logging capabilities. log4net 1.2.10.0
<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> </configSections> <log4net> <!-- Appenders and loggers go here --> </log4net> </configuration> RollingFileAppender (most common) <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="logs\\app.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="5MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> ConsoleAppender <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%dateHH:mm:ss [%level] %message%newline" /> </layout> </appender> AdoNetAppender (SQL Server) <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <connectionType value="System.Data.SqlClient.SqlConnection, System.Data" /> <connectionString value="Server=.;Database=LogDB;Integrated Security=True" /> <commandText value="INSERT INTO Logs ([Date],[Level],[Logger],[Message]) VALUES (@log_date, @level, @logger, @message)" /> <parameter> <parameterName value="@log_date" /> <dbType value="DateTime" /> <layout type="log4net.Layout.RawTimeStampLayout" /> </parameter> <parameter> <parameterName value="@level" /> <dbType value="String" /> <layout type="log4net.Layout.PatternLayout" value="%level" /> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <layout type="log4net.Layout.PatternLayout" value="%logger" /> </parameter> <parameter> <parameterName value="@message" /> <dbType value="String" /> <layout type="log4net.Layout.PatternLayout" value="%message" /> </parameter> </appender> Step 3: Configure Root Logger <root> <level value="INFO" /> <appender-ref ref="RollingFileAppender" /> <appender-ref ref="ConsoleAppender" /> </root> Step 4: Configure Specific Loggers <logger name="MyApp.BusinessLayer"> <level value="DEBUG" /> <appender-ref ref="AdoNetAppender" /> </logger> <logger name="MyApp.Security"> <level value="WARN" /> <appender-ref ref="RollingFileAppender" /> </logger> Basic Usage in Code Initialize log4net In AssemblyInfo.cs : public class CustomMemoryAppender : log4net
var log = LogManager.GetLogger("Global"); Exception ex = Server.GetLastError(); log.Fatal("Unhandled exception", ex); released under the Apache License 2.0