• 使用Log4net把日志写入到SqlServer数据库


    1、官网URL: http://logging.apache.org/log4net/ 

    2、配置文件参照URL: http://logging.apache.org/log4net/release/config-examples.html 

    3、在Web.config中加入以下代码 

      3.1:在configSections中加入 

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

      
    <configSections>
        <!--Log4net的配置-->
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
        
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
      </configSections>
    configSections

      3.2:log4net节点配置如下  

      
    <!--Log4net的配置-->
      <log4net>
        <!--本地Text文件-->
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
          <param name="File" value="c:Log4DBLog.txt" />
          <param name="AppendToFile" value="true" />
          <layout type="log4net.Layout.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
          </layout>
        </appender>
    
        <!--SQL数据库-->
        <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
          <bufferSize value="1" />
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          <connectionString value="data source=[database server];initial catalog=[database name];integrated security=false;persist security info=True;User ID=[user];Password=[password]" />
        <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
          <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.RawTimeStampLayout" />
          </parameter>
          <parameter>
            <parameterName value="@thread" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%thread" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%level" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%logger" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%message" />
            </layout>
          </parameter>
          <parameter>
            <parameterName value="@exception" />
            <dbType value="String" />
            <size value="2000" />
            <layout type="log4net.Layout.ExceptionLayout" />
          </parameter>
        </appender>
    
        <root>
          <!-- Set this to "ERROR" before release -->
          <!--Highest: OFF->FATAL->RROR->WARN->INFO->DEBUG->ALL :Lowest -->
          <level value="ALL" />
          <appender-ref ref="AdoNetAppender" />
          <!-- <appender-ref ref="SmtpAppender" /> -->
          <!--<appender-ref ref="FileAppender" /> -->
        </root>
    
      </log4net>
    Log4节点的配置

    4、在AssemblyInfo.cs中加入以下两行代码

      using log4net;

      [assembly: log4net.Config.XmlConfiguratorAttribute(Watch = true)]

    5、代码调用测试如下:  

    private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(HomeController));
    
            public ActionResult Index()
            {
                log.Info("自定义Info级别的信息");
                log.Error("error", new Exception(" error 信息 。。。"));
                log.Fatal("fatal", new Exception(" fatal 信息 。。。"));
                log.Info("info", new Exception(" info 信息 。。。"));
                log.Debug("debug", new Exception(" debug 信息 。。。"));
                log.Warn("warn", new Exception(" warn 信息 。。。"));
    
                return View();
            }
    Log4net在代码中调用

     6、效果如下:

    7、建表SQL语句:

    CREATE TABLE [dbo].[Log] (
        [Id] [int] IDENTITY (1, 1) NOT NULL,
        [Date] [datetime] NOT NULL,
        [Thread] [varchar] (255) NOT NULL,
        [Level] [varchar] (50) NOT NULL,
        [Logger] [varchar] (255) NOT NULL,
        [Message] [varchar] (4000) NOT NULL,
        [Exception] [varchar] (2000) NULL
    )
  • 相关阅读:
    Problem D: GJJ的日常之暴富梦(水题)
    Problem I: GJJ的日常之玩游戏(GDC)
    扩展欧几里得,解线性同余方程 逆元 poj1845
    poj3696 欧拉函数引用
    同余
    欧拉函数,打表求欧拉函数poj3090
    洛谷p1072 gcd,质因数分解
    gcd,lcm
    约数 求反素数bzoj1053 bzoj1257
    poj2992 阶乘分解
  • 原文地址:https://www.cnblogs.com/maocs/p/4551586.html
Copyright © 2020-2023  润新知