webAPI中使用log4net进行日志记录

1.从nuget下载log4net

2.根据需求配置web.config,或者另外写一个log4net.config文件,各个节点的意义详细查询api

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!--日志路径-->
      <!--<param name="File" value="D:\ElevatorSystem\SafeElevator\SafeElevator\App_Log\servicelog\" />-->
      <param name="File" value="App_Log\" />
      <!--是否是向文件中追加日志-->
      <param name="AppendToFile" value="true" />
      <!--log保留天数-->
      <param name="MaxSizeRollBackups" value="10" />
      <!--日志文件名是否是固定不变的-->
      <param name="StaticLogFileName" value="false" />
      <!--日志文件名格式为:2008-08-31.log-->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.read.log&quot;" />
      <!--日志根据日期滚动-->
      <param name="RollingStyle" value="Date" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" />
      </layout>
    </appender>

    <!--root是一个父级的logger,所有Logger列表的形式写在里面,相当于多个looger分开定义-->
    <root>
      <!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      <level value="all" />
      <!--<appender-ref ref="ColoredConsoleAppender"/>-->
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

3.

在WebApiConfig.cs 中加上(也可以在global中加)

log4net.Config.XmlConfigurator.Configure();       //启用log4net配置

4.新增loghelper类

 public class LogHelper
    {
        private static readonly log4net.ILog logger = log4net.LogManager.GetLogger("LogHelper");

        public static void WriteLog(string msg)

        {

            logger.Info(msg);

        }
    }

4.调用

LogHelper.WriteLog("hello can you hear me~");

也可以将记录日志的操作写到过滤器里面,就不用每个api 都写一遍记录日志

posted on 2017-11-03 10:23  强大的程序猿人  阅读(6246)  评论(0编辑  收藏  举报