Вывод Log4Net в Mongo

#asp.net-mvc-3 #mongodb #log4net #log4net-configuration

#asp.net-mvc-3 #mongodb #log4net #log4net-конфигурация

Вопрос:

Кому-нибудь повезло правильно настроить это?

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

и

 <log4net>
  <appender name="MongoAppender" type="log4net.Appender.MongoDBAppender, log4mongo-net">
     <!-- MongoDB connection options -->
     <host value="staff.mongohq.com" />
     <port value="10048" />
     <databaseName value="d1741d63-46b1-4a44-9c21-8a85cecae45b" />
     <collectionName value="logs_net" />
     <userName value="balexandre" />
     <password value="myPassWorD" />
  </appender>
  

  • Добавлено log4net.Config.XmlConfigurator.Configure(); в global.asax раздел Application_Start()

и добавлена некоторая информация:

 ILog logger = LogManager.GetLogger(this.GetType());
logger.Info("MainController Initialize test");
  

И… Я не могу получить журналы в MongoDB, любая помощь?

Кстати, имя базы данных не является правильным, ни пароль, и если я использую log4net.Appender.RollingFileAppender его, он отлично работает.

Комментарии:

1. Может быть проблема с брандмауэром, если вы используете MongoDB на порту 10048. Можете ли вы подключиться к MongoDB из других частей вашего приложения?

2. да, я могу, я использую MongoHQ и могу подключиться к базе данных с помощью клиентского графического интерфейса. Брандмауэр на моем компьютере отключен, и это также происходит, если я push использую источник для хостинга.

3. Честно говоря, может быть довольно просто получить исходный код и выполнить отладку с помощью этого.

Ответ №1:

Я предлагаю включить внутреннюю отладку, это должно показать, что происходит не так. Вполне возможно, что сборка log4mongo загружена неправильно. Вы уверены, что он скопирован (со всеми зависимостями) в папку bin?

Комментарии:

1. черт возьми… это было легко: D и я потратил на это ооочень много времени, все, чего мне не хватало, это библиотеки: -/ о, моя голова!

Ответ №2:

У меня были те же симптомы по другой причине. Моя конфигурация ведения журнала XML была неправильной. Вот как я узнал.

1) Включить внутреннюю (не log4net) отладку в коде перед созданием регистратора:

 log4net.Util.LogLog.InternalDebugging = true;
...
XmlElement conf = ...
XmlConfigurator.Configure(conf);
var logger = LogManager.GetLogger(loggerName);
  

2) Запустите свой код и посмотрите вывод в Output окне Visual Studio с Debug выбранным в Show output from выпадающем списке. Вы должны иметь возможность видеть, как создаются приложения.

В моем случае URL базы данных был неправильным — я указал дополнительные параметры в неправильном формате.