#java #mongodb #log4j #log4j2 #mongodb-atlas
Вопрос:
Я настроил Log4j2 для записи журналов в мой кластер Mongo Atlas (4.4.8).
Конфигурация кажется нормальной (я использую строку подключения, заданную Atlas), и журналы (консоль) сообщают, что подключение к MongoDB в порядке, база данных восстановлена правильно и коллекция восстановлена правильно.
Но затем, когда он пытается записать журнал в БД, время ожидания истекает через 30000мс, говоря:
Timed out after 30000 ms while waiting to connect. Client view of cluster state is {type=UNKNOWN, servers=[]
Я также вижу несколько сообщений, в которых говорится:
INFO org.mongodb.driver.cluster - Cluster description not yet available. Waiting for 30000 ms before timing out
Чего я не понимаю, так это того, что, используя тот же драйвер, ту же строку подключения, все операции, которые я выполняю с этим же MongoDB, самостоятельно управляя подключением (у меня есть класс MongoDBService, в котором я создаю соединение Mongo и т. Д….обычные вещи), Работают без проблем, поэтому это приводит меня к тому, что Log4j плохо обрабатывает соединение с MongoDB…
Любая помощь будет признательна!
Комментарии:
1. У меня такая же проблема даже с моим локальным контейнером mongo docker. Вы решили проблему?
2. Привет @hosseinshemshadi. Нет, похоже, никто не в состоянии помочь… Я не знаю, что происходит, и, похоже, у нас очень мало желающих использовать log4j в базе данных mongo, к сожалению…
Ответ №1:
Наконец я обнаружил проблему в своих конфигурациях. Может быть, это сработает и для тебя тоже. Я привык иметь несколько приложений в корневом регистраторе. Поэтому mongodb пытался записать что-то вроде: «эй, я собираюсь войти» после инициализации RollingFileAppender, но до mongodbAppender. Вы можете увидеть это ниже:
Root:
level: info
AppenderRef:
- ref: ConsoleAppender
- ref: RollingFileAppender
- ref: MongoAppender
Просто изменив регистратор приложения mongo, все сработало для меня.
logger:
- name: com.sinansoft
level: info
additivity: false
AppenderRef:
- ref: MongoAppender
Root:
level: info
AppenderRef:
- ref: ConsoleAppender
- ref: RollingFileAppender
Дайте мне знать, если вам нужны дополнительные сведения о конфигурации в этом случае.
Комментарии:
1. Ты разгадал ее!! Это сработало и для меня тоже! Таким образом, проблема заключалась в том, как, по-видимому, он инициализирует регистраторы.