1.下载log4net.dll
2.封装Debug类,类似Unity的Debug一样使用
using log4net;
using log4net.Config;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
public static class Debug
{
private static ILog m_Log;
static Debug()
{
XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));
m_Log = LogManager.GetLogger(typeof(Debug));
}
public static void Log(object message)
{
m_Log.Debug(message);
}
public static void Log(string format, params object[] args)
{
m_Log.DebugFormat(format, args);
}
public static void LogInfo(object message)
{
m_Log.Info(message);
}
public static void LogInfo(string format, params object[] args)
{
m_Log.InfoFormat(format, args);
}
public static void LogWarn(object message)
{
m_Log.Warn(message);
}
public static void LogWarn(string format, params object[] args)
{
m_Log.WarnFormat(format, args);
}
public static void LogError(object message)
{
m_Log.Error(message);
}
public static void LogError(string format, params object[] args)
{
m_Log.ErrorFormat(format, args);
}
public static void LogFatle(object message)
{
m_Log.Fatal(message);
}
public static void LogFatle(string format, params object[] args)
{
m_Log.FatalFormat(format, args);
}
}
3.编辑log4net.config,并放置在解决方案中
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<log4net>
<root>
<level value="All"/>
<appender-ref ref="RollingLogFileAppender"/>
<appender-ref ref="ConsoleAppender"/>
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\logfile.log"/>
<appendToFile value="true"/>
<Encoding value="UTF-8" />
<!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]日志文件名格式为:2008-08-31.log -->
<param name= "DatePattern" value= "yyyy-MM-dd".log""/>
<!--log保留天数-->
<param name= "MaxSizeRollBackups" value= "10"/>
<!--日志文件名是否是固定不变的(是否只写到一个文件中)-->
<param name= "StaticLogFileName" value= "false"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date" />
<!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
<param name="maximumFileSize" value="500KB" />
<layout type="log4net.Layout.PatternLayout">
<!--
%d, %date :表示当然的时间
%p, %level :表示日志的级别
%c, %logger :表示日志产生的主题或名称,通常是所在的类名,便于定位问题
%m, %message :表示日志的具体内容
%n, %newline :换行
%exception :表示异常信息
-->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m %logger %n" />
</layout>
</appender>
<!-- 控制台显示日志 -->
<appender name="ConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- 设置不同级别控制台显示的不同颜色 -->
<mapping>
<level value="INFO" />
<foreColor value="Green" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Yellow" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="Red, HighIntensity" />
</mapping>
<!-- 记录的格式。 -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{HH:mm:ss,fff} [%-5level] %m %n" />
</layout>
<!--
过滤器type有如下几种类型
log4net.Filter.DenyAllFilter 丢弃所有日志事件。
log4net.Filter.LevelMatchFilter 准确匹配事件等级。
log4net.Filter.LevelRangeFilter 匹配一个范围的等级。
log4net.Filter.LoggerMatchFilter 匹配一个日志器名字的开始。
log4net.Filter.PropertyFilter 匹配指定属性名称的子字符串。
log4net.Filter.StringMatchFilter 匹配事件消息的子字符串。
-->
<filter type="log4net.Filter.LevelRangeFilter">
<!-- 控制输出日志的级别范围 -->
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="Error" />
</filter>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2"/>
</startup>
</configuration>
4.AssemblyInfo结尾追加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
5.最后选择log4net.config,在高级栏目中:复制到输出目录更改为:始终复制