首先Nuget引用log4net开源库
打开AssemblyInfo.cs文件
文件在项目的位置如下图:
在最后面添加 如下一行
///LogNet4 日志库
[assembly: log4net.Config.XmlConfiguratorAttribute(ConfigFile = @"log4net.config", Watch = true)]
如图:
开源库初始化 启动时执行一次即可
#region 日志配置文件定位 这里默认配置文件log4net.config是放在程序根目录 string log4net = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log4net.config"); XmlConfigurator.ConfigureAndWatch(new FileInfo(log4net)); #endregion
调用写入例子
//这里的 loginfo 和 log4net.config 里的名字要一样
static readonly log4net.ILog LogLnfo = log4net.LogManager.GetLogger("loginfo");
//这里的 logerror 和 log4net.config 里的名字要一样
static readonly log4net.ILog LogError = log4net.LogManager.GetLogger("logerror");
/// <summary>
/// 正常记录操作信息
/// </summary>
/// <param name="info"></param>
public static void Info(string message, Exception ex = null)
{
if (LogLnfo.IsInfoEnabled)
{
LogLnfo.Info(message, ex);
}
}
/// <summary>
/// 记录错误详细信息
/// </summary>
/// <param name="info"></param>
/// <param name="ex"></param>
public static void Error(string message, Exception ex = null)
{
if (LogError.IsErrorEnabled)
{
LogError.Error(message, ex);
}
}
配置文件log4net.config例子
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net> <logger name="logerror"> <level value="ERROR" /> <appender-ref ref="ErrorAppender" /> </logger> <logger name="loginfo"> <level value="INFO" /> <appender-ref ref="InfoAppender" /> </logger> <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Logs//Error//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="异常时间:%d [%t] %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n异常:%exception %n#%n" /> <!--<param name="ConversionPattern" value="异常时间:%d [%t] %n 异常级别:%-5p %n异常位置:[%thread] (%file:%line) %n消息描述:%message%n 异常:%exception %n#%n" />--> </layout> </appender> <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender"> <!--设置日志存储路径--> <param name="File" value="Logs//Info//" /> <!--是否追加到文件--> <param name="AppendToFile" value="true" /> <!--最多产生的日志文件数,超过则只保留最新的n个。设定值value="-1"为不限文件数--> <param name="MaxSizeRollBackups" value="100" /> <param name="MaxFileSize" value="1024" /> <!--是否只写到一个文件中--> <param name="StaticLogFileName" value="false" /> <!--这是按日期产生文件夹,并在文件名前也加上日期--> <param name="DatePattern" value="yyyyMM/dd".log"" /> <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])--> <param name="RollingStyle" value="Date" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="日志时间:%d [%t] %n消息描述:%message %n#%n" /> <!--<param name="ConversionPattern" value="日志时间:%d [%t] %n日志级别:%-5p %n 消息描述:%message %n#%n" />--> </layout> </appender> <root> <!--配置可输出日志级别--> <level value="all"/> </root> </log4net> </configuration>