zoukankan      html  css  js  c++  java
  • 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目录在网站根目录下生成了。

  • 相关阅读:
    godaddy的win主机发邮件的组件
    读取excel的时候,往往多了很多空白行,下面的代码是去掉空白行的
    where泛型约束
    博客园页面有问题,
    今晚就出发回家啦!!!!
    呵呵,日期小小技巧
    获取设置本地当前默认打印机
    Queue Explorer过期处理
    SQL多关键字查询 并按精确度排序
    python 高阶函数
  • 原文地址:https://www.cnblogs.com/thyong/p/5222990.html
Copyright © 2011-2022 走看看