Skip to content

Instantly share code, notes, and snippets.

@Tres-Poli
Forked from blachniet/ClassLogDefClip.cs
Created November 26, 2019 11:39
Show Gist options
  • Save Tres-Poli/0caccaeb189115397469a849361f2001 to your computer and use it in GitHub Desktop.
Save Tres-Poli/0caccaeb189115397469a849361f2001 to your computer and use it in GitHub Desktop.
Simple log4net configuration
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message %exception%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
</configuration>
private static readonly log4net.ILog _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
namespace Log4NetTest
{
class Program
{
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
}
}
private static void ConfigureLogging()
{
var layout = new PatternLayout("%date %level %logger - %message %exception%newline");
layout.ActivateOptions();
var roller = new RollingFileAppender();
roller.Layout = layout;
roller.AppendToFile = true;
roller.RollingStyle = RollingFileAppender.RollingMode.Size;
roller.MaxSizeRollBackups = 4;
roller.MaximumFileSize = "100KB";
roller.StaticLogFileName = true;
roller.File = "MyLog.log";
roller.ActivateOptions();
var hierarchy = (Hierarchy)LogManager.GetRepository();
hierarchy.Root.AddAppender(roller);
hierarchy.Root.Level = Level.All;
hierarchy.Configured = true;
}
string xml = @"<log4net>
<!-- A1 is set to be a ConsoleAppender -->
<appender name='Console' type='log4net.Appender.ConsoleAppender'>
<!-- A1 uses PatternLayout -->
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%date %level %logger - %message %exception%newline' />
</layout>
</appender>
<appender name='RollingFile' type='log4net.Appender.RollingFileAppender'>
<file value='example.log' />
<appendToFile value='true' />
<maximumFileSize value='100KB' />
<maxSizeRollBackups value='2' />
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%level %thread %logger - %message%newline' />
</layout>
</appender>
<root>
<level value='DEBUG' />
<appender-ref ref='Console' />
<appender-ref ref='RollingFile' />
</root>
</log4net>";
using (MemoryStream stream = new MemoryStream(Encoding.ASCII.GetBytes(xml)))
{
XmlConfigurator.Configure(stream);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment