2012-03-31 229 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。