1、引用Log4net.dll
2、动态库定义类(Propertites\AssemblyInfo.cs),添加log4net配置。
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ConsoleApplication1")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ConsoleApplication1")]
[assembly: AssemblyCopyright("Copyright ? 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]//添加Log4net的配置。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("7ca2694e-4315-460b-8ef9-fe7a68b365e9")]// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
3、添加配置文件log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration><!-- Level的级别,由高到低 --><!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL--><!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中--><log4net><!--错误日志类--><logger name="logerror"><!--日志类的名字--><level value="ALL" /><!--定义记录的日志级别--><appender-ref ref="ErrorAppender" /><!--记录到哪个介质中去--></logger><!--信息日志类--><logger name="loginfo"><level value="ALL" /><appender-ref ref="InfoAppender" /></logger><!--错误日志附加介质--><appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"><!-- name属性指定其名称,type则是log4net.Appender命名空间的一个类的名称,意思是,指定使用哪种介质--><param name="File" value="Log\\LogError\\" /><!--日志输出到exe程序这个相对目录下--><param name="AppendToFile" value="true" /><!--输出的日志不会覆盖以前的信息--><param name="MaxSizeRollBackups" value="100" /><!--备份文件的个数--><param name="MaxFileSize" value="10240" /><!--当个日志文件的最大大小--><param name="StaticLogFileName" value="false" /><!--是否使用静态文件名--><param name="DatePattern" value="yyyyMMdd".htm"" /><!--日志文件名--><param name="RollingStyle" value="Date" /><!--文件创建的方式,这里是以Date方式创建--><!--错误日志布局--><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /></layout></appender><!--信息日志附加介质--><appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"><param name="File" value="Log\\LogInfo\\" /><param name="AppendToFile" value="true" /><param name="MaxFileSize" value="10240" /><param name="MaxSizeRollBackups" value="100" /><param name="StaticLogFileName" value="false" /><param name="DatePattern" value="yyyyMMdd".htm"" /><param name="RollingStyle" value="Date" /><!--信息日志布局--><layout type="log4net.Layout.PatternLayout"><param name="ConversionPattern" value="<HR COLOR=blue>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n <HR Size=1>" /></layout></appender></log4net>
</configuration>
4、通用类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace bing
{public class LogHelper{public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");//这里的 loginfo 和 log4net.config 里的名字要一样public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");//这里的 logerror 和 log4net.config 里的名字要一样public static void WriteLog(string info){//不要忘记AssemblyInfo.cs中的配置//[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]if (loginfo.IsInfoEnabled){loginfo.Info(info);}}public static void WriteError(string info){if (loginfo.IsInfoEnabled){loginfo.Error(info);}}public static void WriteError(string info, Exception ex){if (logerror.IsErrorEnabled){logerror.Error(info, ex);}}}
}