2012-03-31 4 views
0

У меня проблема с Log4Net. Это не добавляет запись в таблицу ... здесь таблица запросаLog4Net вставка в SQL db не работает

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> 

Кроме того, в Global.asax.cs в Aplication_Start я ADDE d строка

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

Если я пытаюсь добавить сообщение в работу текстового файла в порядке.

App в MVC3 и я с помощью SQL Server 2008R2

Любые предложения ??

ответ

0

проверить это очень хорошая статья из: http://sadi02.wordpress.com/2008/09/15/how-to-store-log-in-database-using-log4net/

Привет,

+0

Я выполнил все шаги из блога, который вы отправили, но все еще нет записей в таблице ... – Vlad

+0

@ user1305208 Вы проверили разрешения и разрешения для вашего приложения в настройках .NET Security? –

+0

попробуйте также запустить свою визуальную студию в качестве администратора и затем выполнить свое приложение. Иногда это способ получить такие вещи, как это исправлено. –

1

Ваш журнал таблицы: Log4Net_Error; Таблица журналов в файле конфигурации: Log4Net_Error2. Вы должны изменить имя таблицы как Log4Net_Error в файле конфигурации.

Смежные вопросы