• Using nunit in website and class project.


    1.Using nuit in website.

    <1> Using add reference function to add nunit dll.

    <2> Add the below section to web.config

    <configuration>
     <configSections>
      <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
       <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
         <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
         <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
         <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
        </sectionGroup>
       </sectionGroup>
      </sectionGroup>
      <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
     </configSections>
     <log4net>
      <!--日志记录器logger,可以有多个-->
      <logger name="AppLogger">
       <level value="INFO"/>
       <appender-ref ref="LogFileAppender"/>
       <appender-ref ref="ConsoleAppender"/>
      </logger>
      <logger name="Form1">
       <level value="DEBUG"/>
       <appender-ref ref="LogFileAppender"/>
      </logger>
      <!--所有logger的基,root的设置在所有logger中都起作用。
            当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次。-->
      <!--<root>
                <level value="WARN" />
                <appender-ref ref="LogFileAppender" />
                <appender-ref ref="ConsoleAppender" />
            </root>-->
      <!--一个appender可以由多个logger共用,当然一个logger可以指定多个appender。-->
      <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
       <param name="File" value="App.log"/>
       <param name="AppendToFile" value="true"/>
          <param name="datePattern" value=".yyyyMMdd"/>
          <param name="maximumFileSize" value="1MB"/>
       <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
       </layout>
       <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="DEBUG"/>
        <param name="LevelMax" value="FATAL"/>
       </filter>
      </appender>
      <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
       <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
       </layout>
      </appender>
     </log4net>

    <3>In Global.asax file add the code:

    <script runat="server">

        void Application_Start(object sender, EventArgs e)
        {
            log4net.Config.DOMConfigurator.Configure();
        }
       
        void Application_End(object sender, EventArgs e)
        {
            //  Code that runs on application shutdown

        }
           
        void Application_Error(object sender, EventArgs e)
        {
            // Code that runs when an unhandled error occurs

        }

        void Session_Start(object sender, EventArgs e)
        {
            // Code that runs when a new session is started

        }

        void Session_End(object sender, EventArgs e)
        {
            // Code that runs when a session ends.
            // Note: The Session_End event is raised only when the sessionstate mode
            // is set to InProc in the Web.config file. If session mode is set to StateServer
            // or SQLServer, the event is not raised.

        }
          
    </script>

    <4> Add a file App.log in project root folder.

    <5>Then you can use log4j.net to log message
      log4net.ILog log = log4net.LogManager.GetLogger("AppLogger");
            log.Debug("aaa");
            log.Info("bbb");

     

    2.Using log4j.net in class project

    <1>In class project add log4j.net dll to project

    <2>Add  the configuration info in app.config file

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler,log4net" />
      </configSections>
      <log4net>
        <!--日志记录器logger,可以有多个-->
        <logger name="AppLogger">
          <level value="DEBUG"/>
          <appender-ref ref="LogFileAppender"/>
          <appender-ref ref="ConsoleAppender"/>
        </logger>
        <logger name="Form1">
          <level value="DEBUG"/>
          <appender-ref ref="LogFileAppender"/>
        </logger>
        <!--所有logger的基,root的设置在所有logger中都起作用。
            当在root和logger中重复设定相同的appender时,你会发现同一日志信息将被记录两次。-->
        <!--<root>
                <level value="WARN" />
                <appender-ref ref="LogFileAppender" />
                <appender-ref ref="ConsoleAppender" />
            </root>-->
        <!--一个appender可以由多个logger共用,当然一个logger可以指定多个appender。-->
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
          <param name="File" value="App.log"/>
          <param name="AppendToFile" value="true"/>
          <param name="datePattern" value=".yyyyMMdd"/>
          <param name="maximumFileSize" value="1MB"/>
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
          </layout>
          <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="DEBUG"/>
            <param name="LevelMax" value="FATAL"/>
          </filter>
        </appender>
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
          </layout>
        </appender>
      </log4net>
    </configuration>

    <3>Add method to read the app.config file

       public void SetLoggerConfig()
            {
                String filePath = @"C:\My Documents\Visual Studio 2005\Projects\ADOProject\BLL\App.config";
                FileInfo file = new FileInfo(filePath);
                log4net.Config.DOMConfigurator.Configure(file);
            }

    <4> Get logger object

    private ILog logger = log4net.LogManager.GetLogger("AppLogger"); // AppLogger is defined in app.config file

    <5> You can log the info now . And the App.log file will auto create to the debug folder of the class project.

  • 相关阅读:
    Android开发与Sequoyah的安装问题
    Discuz 数据库各表的作用
    jQuery-File-Upload $(...).fileupload is not a function $.widget is not a function
    phpstorm xdebug 无法断点调试问题
    Android Service 启动流程
    Discuz! 全局变量说明
    Discuz! X3 数据表、数据字段说明
    Spring Boot 搭建
    Android组件化开发(注意事项)
    NestedScrollView嵌套RecycleView发生的小问题
  • 原文地址:https://www.cnblogs.com/Excellentchen/p/1634233.html
Copyright © 2020-2023  润新知