2012-03-31 3 views
0

Ich habe ein Problem mit Log4Net. Es macht keinen Eintrag in der Tabelle hinzufügen ... hier ist die Tabelle AbfrageLog4Net Einfügen in SQL-Datenbank funktioniert nicht

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

und der Code in der web.config ist unten :

<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> 

auch ich in global.asax.cs in Aplication_Start hat die Zeile hinzugefügt

log4net.Config.XmlConfigurator.Configure(); 

Und ich habe immer noch keinen Eintrag in der Tabelle.

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); 
    } 

Wenn ich versuche, die Nachricht in einer Textdatei hinzuzufügen, ist die Arbeit in Ordnung.

ist App in MVC3 und ich bin mit SQL Server 2008r2

Irgendwelche Vorschläge ??

Antwort

0
+0

Ich habe alle Schritte aus dem Blog getan, die Sie gepostet, aber immer noch keine Datensätze in der Tabelle ... – Vlad

+0

@ user1305208 haben Sie die DB-Berechtigungen und die Berechtigungen Ihrer Anwendung in den .NET-Sicherheitseinstellungen überprüft? –

+0

versuchen Sie auch, Ihr Visual Studio als Admin zu starten und dann Ihre Anwendung auszuführen. Manchmal ist dies eine Möglichkeit, Dinge wie diese zu beheben. –

1

Ihre Log-Tabelle: Log4Net_Error; Log-Tabelle in der Konfigurationsdatei: Log4Net_Error2. Sie sollten den Tabellennamen als Log4Net_Error in der Konfigurationsdatei ändern.

Verwandte Themen