1.install-package log4net
2.add new config file, its name is log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
<appender name="console" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<mapping>
<level value="INFO"/>
<foreColor value="Green,HighIntensity"/>
</mapping>
<mapping>
<level value="Debug"/>
<foreColor value="Yellow,HighIntensity"/>
</mapping>
<mapping>
<level value="Warn"/>
<foreColor value="Purple,HighIntensity"/>
</mapping>
<mapping>
<level value="Fatal"/>
<foreColor value="Cyan,HighIntensity"/>
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message%newline" />
</layout>
</appender>
<appender name="file" type="log4net.Appender.RollingFileAppender">
<file value="myapp.log" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline" />
</layout>
</appender>
</log4net>
</configuration>
3.Right click the log4net.config and set Copy to Output Directory as 'Copy Always'
4.Open AssemblyInfo.cs and append to the end
[assembly:log4net.Config.XmlConfigurator(ConfigFile ="log4net.config")]
5.
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); static void Main(string[] args) { Log4netDemo(); Console.ReadLine(); } static void Log4netDemo() { logger.Info($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"); logger.Error($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"); logger.Debug($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"); logger.Fatal($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"); logger.Warn($"{DateTime.Now.ToString("yyyyMMddHHmmssffff")}"); }
Of course,you can set the file location manually as below
<file type="log4net.Util.PatternString" value="Logs\Common\%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" />
or
<file type="log4net.Util.PatternString" value="./Logs//Common//%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" />
<appender name="file" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="Logs\Common\%date{yyyy-MM-dd-HH-mm-ss-ffff}.log" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="5" /> <maximumFileSize value="10MB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %level %logger - %message%newline" /> </layout> </appender>