Log4net 集成到MVC+EF框架

时间:2023-03-09 19:53:03
Log4net 集成到MVC+EF框架

前提引用Log4Net.dll文件

1、

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", Watch = true)]

上述代码写到AssemblyInfo.cs文件中

2、Global.asax文件中,Application_Start方法中添加对Log4Net的初始化代码如下:

string l4net = Server.MapPath("~/Web.config");
log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(l4net));

3、配置web.config文件,内容如下,部分配置说明,详见注释

     <!--该项配置必须放在configuration的第一个节点的位置上-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections> <log4net debug="true">
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="ERROR" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<!--日志文件名开头-->
<file value="..\\Logs\\Error\\" />
<!--是否追加到文件-->
<appendToFile value="true" />
<!--混合使用日期和文件大小变换日志文件名-->
<rollingStyle value="Composite" />
<!--最大变换数量-->
<maxSizeRollBackups value="10"/>
<!--最大文件大小-->
<maximumFileSize value="500KB"/>
<!--日期的格式 StaticLogFileName的值如果为true,
则当前日志文件(相对于历史日志文件而言)的文件名只取File参数。
如果为false,则文件名取File+DatePattern。-->
<staticLogFileName value="false" />
<!--下面格式 日志可以按照月份归档-->
<datePattern value="yyyy-MM/yyyy-MM-dd.'log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %logger : %message%newline" />
</layout>
</appender>
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<!--不符合info条件的日志,不做输出-->
<filter type="log4net.Filter.DenyAllFilter" />
<!--日志文件名开头-->
<file value="..\\Logs\\Info\\" />
<!--是否追加到文件-->
<appendToFile value="true" />
<!--混合使用日期和文件大小变换日志文件名-->
<rollingStyle value="Composite" />
<!--最大变换数量-->
<maxSizeRollBackups value="10"/>
<!--最大文件大小-->
<maximumFileSize value="500KB"/>
<!--日期的格式-->
<staticLogFileName value="false" />
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %logger : %message%newline" />
</layout>
</appender>
<root>
<level value="All" />
<appender-ref ref="ErrorAppender" />
<appender-ref ref="InfoAppender" />
</root>
</log4net>

4、添加LogHelper.cs文件

  public class LogHelper
{
public static void debug(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsDebugEnabled)
{
log.Debug(message);
}
log = null;
} public static void error(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsErrorEnabled)
{
log.Error(message);
}
log = null;
} public static void fatal(string message)
{ log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsFatalEnabled)
{
log.Fatal(message);
}
log = null;
}
public static void info(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsInfoEnabled)
{
log.Info(message);
}
log = null;
} public static void warn(string message)
{
log4net.ILog log = log4net.LogManager.GetLogger("LogOut");
if (log.IsWarnEnabled)
{
log.Warn(message);
}
log = null;
}
}

至此,就可以开启你的Log4net之旅