2012-03-31 109 views
0

我有Log4Net的問題。它沒有在表中添加任何條目...... 這裏是表查詢Log4Net插入SQL數據庫不工作

CREATE TABLE [dbo].[Log4Net_Error](
[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 

)ON [PRIMARY]

GO

,並在web.config中的代碼是波紋管:

<log4net> 
<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=.\SQLEXPRESS;Initial Catalog=pnawebloket;Integrated Security=True" /> 
    <commandText value="INSERT INTO Log4Net_Error2 ([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> 
<!-- Set root logger level to DEBUG and its only appender to A1 --> 
<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="AdoNetAppender" /> 
</root> 

另外,在我Aplication_Start的global.asax.cs添加該行

log4net.Config.XmlConfigurator.Configure(); 

而且我還沒有表中的條目。

public ActionResult Employees() 
    { 
     log4net.ILog logger = log4net.LogManager.GetLogger(this.GetType()); 
     logger.Info("test"); 

     //throw new Exception("ex"); 
     ViewBag.Message = "Bellow is a table with employee's"; 
     var employees = employeerepository.FindAllEmployee().ToList(); 

     return View(employees); 
    } 

如果我嘗試在文本文件中添加消息工作正常。

應用在MVC3,我使用SQL Server 2008R2

任何建議?

回答

0
+0

我已經完成了從您發佈的博客開始的所有步驟,但表中仍然沒有任何記錄... – Vlad 2012-03-31 17:01:06

+0

@ user1305208您是否在.NET安全設置中檢查了DB應用程序的權限和應用程序的權限? – 2012-03-31 17:02:33

+0

也嘗試以管理員身份啓動您的視覺工作室,然後執行您的應用程序。有時候這是一種解決這種問題的方法。 – 2012-03-31 17:03:21

1

日誌表:Log4Net_Error;記錄表配置文件:Log4Net_Error2。您應該在配置文件中將表名稱更改爲Log4Net_Error。