zoukankan      html  css  js  c++  java
  • log4net用在WebServices中

    最近写一个WebServices要记录log,首当想到的当然是log4net.dll,我把原来WinFrom的配置拷贝过来,log记不了,嘛问题呢?

    于是百度,Google,不少文章呢,有的说WebServices用不了log4net,有的贴出配置照操作还是不能记,哥来兴趣了,log4net不会这么不给力吧?研究了一番答案是否定的,log4net还是很给力的。

    log4net用在WebServices上有几个地方需要配置:

    1.配置Web.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
      </configSections>
      <log4net>
        <appender name="ErrorRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
          <param name="File" value="logs/error.log" />
          <param name="AppendToFile" value="true" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="yyyy.MM.dd" />
          <param name="StaticLogFileName" value="true" />
          <filter type="log4net.Filter.LevelRangeFilter">
            <acceptOnMatch value="true" />
            <levelMin value="ERROR" />
            <levelMax value="FATAL" />
          </filter>
          <maximumFileSize value="15MB" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%newline %d [%t] %-5p %c: %m%n" />
          </layout>
        </appender>
        <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
          <param name="File" value="logs/info.log" />
          <param name="AppendToFile" value="true" />
          <param name="RollingStyle" value="Date" />
          <param name="DatePattern" value="yyyy.MM.dd" />
          <param name="StaticLogFileName" value="true" />
          <filter type="log4net.Filter.LevelRangeFilter">
            <acceptOnMatch value="true" />
            <levelMin value="DEBUG" />
            <levelMax value="WARN" />
          </filter>
          <maximumFileSize value="15MB" />
          <layout type="log4net.Layout.PatternLayout,log4net">
            <param name="ConversionPattern" value="%newline %d [%t] %-5p %c: %m%n" />
          </layout>
        </appender>
        <root>
          <priority value="DEBUG" />
          <appender-ref ref="ErrorRollingFileAppender" />
          <appender-ref ref="InfoRollingFileAppender" />
        </root>
      </log4net>
    </configuration>

    =====================

    配置好了那该怎么使用呢?相信大家都会。

    在.cs文件中加上下面:

     private static ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    在.cs文件的构造函数中加上

    XmlConfigurator.Configure();

    然后就可以用下面方式调用了:

    log.Info("log Info.");//记录在logs/info.log
    log.Error("log Error.");//记录在logs/error.log
    log.Fatal("log Fatal.");//记录在logs/error.log
    log.Debug("log Debug.");//记录在logs/info.log

    2.配置权限

    当初我无法写log的问题,是因为没有配置IIS_IUSRS权限。如果你的Web.config都按照第1步配置好了,如果还不能记log,就在IIS中右键你的WebServices→Edit Permission...→Security找到你的IIS_IUSRS点击Edit...勾上Full control然后Apply.

    如果上面两步你都完成了,恭喜你logs文件夹就会神奇的出现了。

     小小疑问,上面的图片中error信息都是按天分开的,但是info.log是和在一起的。我在Window Services的App.config中同样的配置,info.log也是每天分开的,

    不知道这是不是Web Services和Window Services的区别?

    Any fool can write code that a computer can understand. Good programmers write code that humans can understand. –Martin Fowler
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    World Cup
    Eva's Problem
    Number-guessing Game
    WisKey的眼神
    Vowel Counting
    The 3n + 1 problem
    超级楼梯
    母牛的故事
    素数回文
    画8
  • 原文地址:https://www.cnblogs.com/gerryge/p/Gerry.html
Copyright © 2011-2022 走看看