控制台如何使用log4net日志开源库的配置文件例子
在控制台如何使用log4net日志开源库的配置文件例子
首先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>