log4net.xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-5level] [%thread] {%logger} %file:%line [%class:%method] - %message%newline" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file value="example.log" />
<appendToFile value="true" />
<maximumFileSize value="2MB" />
<maxSizeRollBackups value="2" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%-5level] [%thread] {%logger} %file:%line [%class:%method] - %message%newline" />
</layout>
</appender>
<logger name="ConsoleApplication1.Program" additivity="false">
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="RollingFile" />
</logger>
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
</configuration>
AssemblyInfo.cs
// log4net
[assembly: log4net.Config.XmlConfigurator(ConfigFile="log4net.xml", Watch = true)]
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using log4net;
using log4net.Config;
namespace ConsoleApplication1
{
class Program
{
private static readonly ILog logger = LogManager.GetLogger(typeof(Program));
static void Main(string[] args)
{
int i = 10;
logger.DebugFormat("hello, i = {0}", i);
}
}
}