#asp.net-mvc-3 #mongodb #log4net #log4net-configuration
#asp.net-mvc-3 #mongodb #log4net #log4net-конфигурация
Вопрос:
Кому-нибудь повезло правильно настроить это?
- Создал учетную запись в MongoHQ
- Добавлен новый пользователь в базу данных
- Создана новая коллекция с именем
logs_net
- Добавлена библиотека log4mongo-net
- Добавлена конфигурация в
web.config
<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 базы данных был неправильным — я указал дополнительные параметры в неправильном формате.