MVC5中使用Log4Net

最早搜到的是这篇:

http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC

百度的话,到处是这篇文章的翻译,转载来转载去的,真没意义

但是这里面描述的配置太麻烦了,而且实际项目更可能的是类似这样一个目录:

QQ图片20160227152126

更合理的应该是只要在Tool中添加log4net的引用,再封装一个帮助类供外调用即可

试了一下,这样做就可以了:

1.添加引用

这个不用解释了吧

2.添加一个配置文件:

QQ图片20160227152527

内容如下:

<log4net>
  <logger name="logerror">
    <level value="ALL" />
    <appender-ref ref="ErrorAppender" />
  </logger>
  <logger name="loginfo">
    <level value="ALL" />
    <appender-ref ref="InfoAppender" />
  </logger>
  <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Log\LogError\" />
    <param name="AppendToFile" value="true" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="MaxFileSize" value="10240" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      <!--<param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n "  />-->
    </layout>
  </appender>
  <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="Log\LogInfo\" />
    <param name="AppendToFile" value="true" />
    <param name="MaxFileSize" value="10240" />
    <param name="MaxSizeRollBackups" value="100" />
    <param name="StaticLogFileName" value="false" />
    <param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
    <param name="RollingStyle" value="Date" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      <!--<param name="ConversionPattern" value="&lt;HR COLOR=gray&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n "  />-->
    </layout>
  </appender>
</log4net>

ConversionPattern是控制输出内容,如果想要日志输出html文件,

取消注释掉的ConversionPattern,反将其上面一个ConversionPattern注释掉

再将DatePattern中的.log改成.htm

3.创建帮助类

QQ图片20160227153325

代码如下:

public static class LogHelper
    {
        private static log4net.ILog _loginfo;
        private static log4net.ILog _logerror;
        private static bool _config = false;

        public static void Config()
        {
            if (_config) return;

            var tmp = System.Reflection.Assembly.GetExecutingAssembly().Location;
            var codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
            codeBase = codeBase.Substring(8, codeBase.LastIndexOf("/") - 8 + 1);
            string file = codeBase + "log4net.config";
            using (var fs = File.Open(file, FileMode.Open))
                log4net.Config.XmlConfigurator.Configure(fs);
            _loginfo = log4net.LogManager.GetLogger("loginfo");
            _logerror = log4net.LogManager.GetLogger("logerror");
            _config = true;
        }

        public static void Debug(object info)
        {
            _loginfo.Debug(info);
        }

        public static void Info(object info)
        {
            _loginfo.Info(info);
        }

        public static void Error(Exception ex)
        {
            _logerror.Error(ex.Message, ex);
        }
    }

4.Web配置

在Global.asax中添加一行代码:

QQ图片20160227153530

5.结果

再次运行代码,你就能看到Log目录在网站根目录下生成了。

原文地址:https://www.cnblogs.com/thyong/p/5222990.html