使用log4net从数据库记录SQL异常

时间:2014-11-27 15:02:34

标签: c# sql-server wcf log4net sqlexception

我有一个wcf服务,它调用sql数据库中的存储过程。我使用log4net进行日志记录。

如果从数据库中抛出任何sql异常,我可以从服务中的异常对象获取sql异常属性,如过程名称,错误行,严重性等。

但有没有办法使用log4net直接在文件中记录这些属性?

1 个答案:

答案 0 :(得分:0)

请按照以下步骤操作:

  1. 添加对log4net dll的引用
  2. 导入以下命名空间 使用log4net; 使用log4net.Config;
  3. 将以下代码添加到全局声明

    private static readonly ILog log =   LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    
  4. 将此代码添加到构造函数

    XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + @"\Config\Log4Net.config"));
    
  5. 将以下内容复制到配置标记

  6. 下的配置文件中

    
    
    <configSections>
              section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
           </configSections>
           <log4net debug="true">
            <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
              <file value="C:\\Temp\\errLog.txt" />
              <appendToFile value="true" />
              <rollingStyle value="Size" />
              <maxSizeRollBackups value="10" />
              <maximumFileSize value="10MB" />
              <staticLogFileName value="true" />
              <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
              </layout>
            </appender>
            <root>
              <level value="DEBUG" />
              <level value= "ERROR" />
              <appender-ref ref="RollingLogFileAppender" />
            </root>
          </log4net>
    &#13;
    &#13;
    &#13;

      在try ... catch(Exception ex)中的
    1. 添加以下行

      log.Error(ex)