2017-01-05 3 views
0

У меня есть приложение asp.net, использующее log4Net для регистрации сообщений в файл. Я хотел бы регистрировать сообщения в базе данных, зная, что сначала использую код с сущностью. В настоящее время я могу регистрировать сообщение в базе данных и файл, если база данных уже существует. Однако то, что я хотел бы достичь, заключается в том, что если база данных еще не создана, то первый вызов для регистрации сообщения в базу данных будет создавать базу данных и регистрировать сообщение. я могу сделать это сейчас, позвонив по телефону этого кода Global.asax.cs файл:log4Net с инфраструктурой сущности

using (var DataContext = new MyContext()) 
     { 

      Log logsnew = DataContext.Logs.SingleOrDefault();     
     } 

     logger.Info("info test message"); 

Это конструктор моего контекста:

public MyContext() 
     : base($"name=MyConnectionString") 
    { 
     Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>()); 
    } 

Я хотел бы избежать печатной каждый раз Я должен зарегистрировать сообщение, есть ли другой способ сделать это, пожалуйста?

+0

переместить конфигурацию ведения журнала в свой класс DbContext. – Kevorkian

+0

Не могли бы вы объяснить все дальше? моя конфигурация log4net находится в моем файле web.cong. У меня также есть класс, представляющий таблицу журналов, связанную с моим контекстом. – Claritta

ответ

1

Если вы хотите, чтобы log4net регистрировался в базе данных и файле, просто настройте FileAppender и AdoNetAppender. Вы не должны регистрироваться в своей базе данных приложений, наилучшей практикой является создание отдельной базы данных для ведения журнала. Если у вас есть проблемы с вашей базой данных, вы все равно можете войти в свою базу данных ведения журнала.

+0

Это имеет смысл, но это не то, что они хотят. Моя текущая проблема заключается в том, что выполнение вышеуказанного кода создает базу данных, если она не существует в первую очередь, но не регистрирует сообщение после этого. Во-первых, подключение к базе данных запрещено с помощью log4net. Однако, если база данных уже существует, то я могу регистрировать что-либо из log4net. Есть ли способ создать базу данных, но сразу же заблокировать ее, чтобы log4net мог записывать сообщения? – Claritta

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