Log4net 集成到MVC+EF框架

csharp

浏览数:186

2019-1-7

AD:资源代下载服务

片段 1片段 2片段 3


引用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));


配置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>


添加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;
         }
     }