首先nuget包,log4net引用;
配置文件App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!--类库-->
<log4net>
<!--类:名字叫ErrorLog 证明这个类要用来记录错误信息-->
<logger name="ErrorLog">
<!--设置这个类的等级是最低-->
<level value="ALL"/>
<!--设置这个引用-->
<appender-ref ref="AppenderError"/>
</logger>
<!--类:名字叫InforLog 证明这个类要用来记录普通信息-->
<logger name="InfoLog">
<level value="ALL"/>
<appender-ref ref="AppenderInfo"/>
</logger>
<logger name="DebugLog">
<level value="ALL"/>
<appender-ref ref="AppenderDebug"/>
</logger>
<!--提供记录错误信息的类中对错误信息的记录方式,记录方式是将信息日志写进一个文件中-->
<appender name="AppenderError" type="log4net.Appender.RollingFileAppender">
<!--设置文件存储的位置-->
<param name="File" value="Log\\Error\\"/>
<param name="MaxSizeRollBackups" value="100" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true"/>
<!--当个日志文件的最大大小-->
<param name="MaxFileSize" value="1024" />
<!--是否使用静态文件名-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名-->
<param name="DatePattern" value="yyyyMMdd".txt"" />
<!--文件创建的方式,这里是以Date方式创建 size Composite-->
<param name="RollingStyle" value="Date" />
<!--记录日志信息的格式-->
<!--"%date [%thread] %-5level %logger [%property{NDC}] - %message%newline",%n异常时间:%d %n异常级别:%-5p%n异常内容:%m%n-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d 日志级别:%-5p 线程ID:%t 日志内容:%m%n" />
</layout>
</appender>
<appender name="AppenderInfo" type="log4net.Appender.RollingFileAppender">
<!--设置文件存储的位置-->
<param name="File" value="Log\\Infor\\"/>
<param name="MaxSizeRollBackups" value="100" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true"/>
<!--当个日志文件的最大大小-->
<param name="MaxFileSize" value="1024" />
<!--是否使用静态文件名-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名-->
<param name="DatePattern" value="yyyyMMdd".txt"" />
<!--文件创建的方式,这里是以Date方式创建 size Composite-->
<param name="RollingStyle" value="Date" />
<!--记录日志信息的格式-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d 日志级别:%-5p 线程ID:%t 日志内容:%m%n" />
</layout>
</appender>
<appender name="AppenderDebug" type="log4net.Appender.RollingFileAppender">
<!--设置文件存储的位置-->
<param name="File" value="Log\\Debug\\"/>
<param name="MaxSizeRollBackups" value="100" />
<!--是否追加到文件-->
<param name="AppendToFile" value="true"/>
<!--当个日志文件的最大大小-->
<param name="MaxFileSize" value="1024" />
<!--是否使用静态文件名-->
<param name="StaticLogFileName" value="false" />
<!--日志文件名-->
<param name="DatePattern" value="yyyyMMdd".txt"" />
<!--文件创建的方式,这里是以Date方式创建 size Composite-->
<param name="RollingStyle" value="Date" />
<!--记录日志信息的格式-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="日志时间:%d 日志级别:%-5p 线程ID:%t 日志内容:%m%n" />
</layout>
</appender>
</log4net>
</configuration>
AssemblyInfo.cs:增加一行代码
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
编写类代码:
public class LogHelper
{
public static ILog LogFatal = LogManager.GetLogger("ErrorLog");
//public static ILog LogError = LogManager.GetLogger("ErrorLog");
public static ILog LogInfo = LogManager.GetLogger("InfoLog");
public static ILog LogDebug = LogManager.GetLogger("DebugLog");
//public static ILog LogWarn = LogManager.GetLogger("WarnLog");
static List<Tip> fatals = new List<Tip>();//致命
static List<Tip> errors = new List<Tip>();//错误
static List<Tip> infos = new List<Tip>();//信息
static List<Tip> debugs = new List<Tip>();//调试
static List<Tip> warns = new List<Tip>();//警告
public static void WriteFatal(object info,Exception exInfo = null)
{
LogFatal.Fatal(info, exInfo);
fatals.Add(new Tip() {ID=fatals.Count+1,Name=info.ToString(),datetime=DateTime.Now });
}
public static void WriteError(object info, Exception exInfo = null)
{
LogFatal.Error(info, exInfo);
fatals.Add(new Tip() { ID = fatals.Count + 1, Name = info.ToString(), datetime = DateTime.Now });
}
public static void WriteInfo(object info, Exception exInfo=null)
{
LogInfo.Info(info, exInfo);
fatals.Add(new Tip() { ID = fatals.Count + 1, Name = info.ToString(), datetime = DateTime.Now });
}
public static void WriteDebug(object info, Exception exInfo = null)
{
LogDebug.Debug(info, exInfo);
fatals.Add(new Tip() { ID = fatals.Count + 1, Name = info.ToString(), datetime = DateTime.Now });
}
public static void WriteWarn(object info, Exception exInfo = null)
{
LogInfo.Warn(info, exInfo);
fatals.Add(new Tip() { ID = fatals.Count + 1, Name = info.ToString(), datetime = DateTime.Now });
}
//public void WriteLog(string info)
//{
// if (LogError.IsErrorEnabled)
// {
// LogError.Error(info);
// }
//}
public class Tip
{
public int ID;
public string Name;
public DateTime datetime;
}
}