ASP.Net MVC 项目中添加LogNet4
1,创建ASP.NET MVC项目
2,NuGet或者直接下载log4net.dll 并安装
3 在配置文件 web.config 加入 如下代码
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
4 在配置文件 web.config 加入lognet4的配置文件
<log4net debug="true">
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<!--日志文件名开头-->
<param name="File" value="Logs\Error\"/>
<!--是否追加到文件-->
<param name="AppendToFile" value="true"/>
<!--记录日志写入文件时,不锁定文本文件-->
<lockingModel type="log4net.Appender.FileAppender+ExclusiveLock"/>
<!--Unicode编码-->
<Encoding value="UTF-8"/>
<!--最多产生的日志文件数,value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="10"/>
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date"/>
<!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]-->
<param name="DatePattern" value="yyyy-MM-dd".log""/>
<!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
<param name="maximumFileSize" value="5000KB" />
<!--记录的格式。-->
<layout type="log4net.Layout.PatternLayout">
<!--<header value="[BEGIN LOGGING AT %date]%newline" type="log4net.Util.PatternString" />
<footer value="[END LOGGING AT %date]%newline%newline" type="log4net.Util.PatternString" />-->
<ConversionPattern value="%d [%t] %-5p %c : %m%n" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO"/>
</filter>
<filter type="log4net.Filter.DenyAllFilter"/>
<!--日志文件名开头-->
<param name="File" value="Logs\Info\"/>
<!--是否追加到文件-->
<param name="AppendToFile" value="true"/>
<!--记录日志写入文件时,不锁定文本文件-->
<lockingModel type="log4net.Appender.FileAppender+ExclusiveLock"/>
<!--Unicode编码-->
<Encoding value="UTF-8"/>
<!--最多产生的日志文件数,value="-1"为不限文件数-->
<param name="MaxSizeRollBackups" value="10"/>
<!--是否只写到一个文件中-->
<param name="StaticLogFileName" value="false"/>
<!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
<param name="RollingStyle" value="Date"/>
<!--按日期产生文件夹,文件名[在日期方式与混合方式下使用]-->
<param name="DatePattern" value="yyyy-MM-dd".log""/>
<!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名-->
<param name="maximumFileSize" value="5000KB" />
<!--记录的格式。-->
<layout type="log4net.Layout.PatternLayout">
<!--<header value="[BEGIN LOGGING AT %date]%newline" type="log4net.Util.PatternString" />
<footer value="[END LOGGING AT %date]%newline%newline" type="log4net.Util.PatternString" />-->
<ConversionPattern value="%d [%t] %-5p %c :%m%n" />
</layout>
</appender>
<root>
<level value="All"/>
<appender-ref ref="ErrorAppender"/>
<appender-ref ref="InfoAppender"/>
</root>
</log4net>
5 在Properties下找到AssemblyInfo.cs 加入代码如下
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]
7在Global.asax 加入代码如下:
string l4net = Server.MapPath("~/Web.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));
8 添加辅助类(引入命名空间 log4net;log4net.Config;System.IO)
public static class AppLog
{
private static ILog log;
static AppLog()
{
XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));
log = LogManager.GetLogger(typeof(AppLog));
}
public static void Debug(object message)
{
log.Debug(message);
}
public static void DebugFormatted(string format, params object[] args)
{
log.DebugFormat(format, args);
}
public static void Info(object message)
{
log.Info(message);
}
public static void InfoFormatted(string format, params object[] args)
{
log.InfoFormat(format, args);
}
public static void Warn(object message)
{
log.Warn(message);
}
public static void Warn(object message, Exception exception)
{
log.Warn(message, exception);
}
public static void WarnFormatted(string format, params object[] args)
{
log.WarnFormat(format, args);
}
public static void Error(object message)
{
log.Error(message);
}
public static void Error(object message, Exception exception)
{
log.Error(message, exception);
}
public static void ErrorFormatted(string format, params object[] args)
{
log.ErrorFormat(format, args);
}
public static void Fatal(object message)
{
log.Fatal(message);
}
public static void Fatal(object message, Exception exception)
{
log.Fatal(message, exception);
}
public static void FatalFormatted(string format, params object[] args)
{
log.FatalFormat(format, args);
}
}
9 使用