2014-01-16 2 views
0

У меня есть файлы журналов (Log4j), загруженные с удаленной машины. Мое требование - хранить содержимое этих файлов в mongodb. Я выбираю mongodb, поскольку это схема меньше хранилища данных и, следовательно, идеально подходит для хранения данных журнала. Мой запрос заключается в том, как преобразовать данные журнала в json-документы и сохранить их в mongodb? Я могу разделить каждую запись в журнале на основе регулярного выражения и сохранить его в объекте, а затем сохранить его в монго, но у меня есть ощущение, что есть лучший выход для этого. Файлы журналов, о которых я говорю здесь, находятся в макс. 50 МБ. Это как продезинфицировать файл журнала будет выглядеть следующим образом:Преобразование данных журнала в json документы для хранения в MongoDB

2014-01-11T17:18:52.656260-08:00 localhost local0: Localhost 17:18:52.655 [INFO ] [..... | Timer-1 ] - asldknluenfbayewbfayewbdaiybdaiywbayhwbdsaas
2014-01-11T13:18:52.657649-08:00 localhost local0: Localhost 17:18:52.657 [INFO ] [..... | Timer-1 ] - dasdasldukjbfksbdfkajsnbdkasaasdasdasdasdasd
2014-01-11T13:18:52.659029-08:00 localhost local0: Localhost 17:18:52.658 [WARN ] [..... | Timer-1 ] - fjdshfaushdaksbdkasudhaksudbaksdbaksdasdasd
2014-01-11T56:18:52.661312-08:00 localhost local0: Localhost 17:18:52.660 [INFO ] [..... | Timer-1 ] - java.util.ConcurrentModificationException at java.util.LinkedHashMap$LinkedHashIterator.nextEntry(LinkedHashMap.java:365) at java.util.LinkedHashMap$KeyIterator.next(LinkedHashMap.java:376) at java.util.AbstractCollection.toArray(AbstractCollection.java:126) at java.util.ArrayList.addAll(ArrayList.java:473) at a.b.c.etc.SomeWrapper.rebuild(SomeWraper.java:109) at a.b.c.etc.SomeCaller.updateCache(SomeCaller.java:421)
2014-01-11T17:18:52.661751-08:00 localhost local0: Localhost 17:18:52.661 [FATAL] [..... | Timer-1 ] - sdfsdfsdfsdfsdfsdfsdfsasdasdasdasdasdasdasd
2014-01-11T17:18:52.663283-08:00 localhost local0: Localhost 17:18:52.662 [ERROR] [..... | Timer-1 ] - sdasdasdasdas

Я бы запрашивая данные на основе диапазона дат и уровень журналирования, следовательно, эти два поля я хотел бы вместе с полем для удерживайте данные. Любые мысли/помощь будут оценены.

+0

Частичный дубликат [Анализ файла журнала log4j] (http://stackoverflow.com/questions/2327073). Я думаю, что вы ищете библиотеку или шаблон для анализа вывода log4j (после чего должно быть легко сохранить анализируемые результаты в MongoDB). Ваш комментарий о запросе данных предлагает второй вопрос о дизайне схемы и индексировании. Я думаю, вы, вероятно, захотите опубликовать это отдельно с примером подхода (-ов) схемы, который вы рассматриваете, общими запросами и определили ли вы подходящие индексы. – Stennie

ответ

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