Результат Log4net Json в базе данных NoSQL

Я пробую сценарий, в котором я могу генерировать журналы JSON и хранить их в базе данных.

Я должен использовать log4net в качестве механизма ведения журнала. Пока я могу получить log4net Json, используя средство форматирования json, как показано ниже.

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
    <param name="File" value="C:\\TestProj\\jsonlog.txt" />
    <param name="AppendToFile" value="true" />
    <param name="DatePattern" value="_yyyyMMddHH&quot;.log&quot;" />
    <param name="RollingStyle" value="Date" />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.SerializedLayout, log4net.Ext.Json">
    </layout>
</appender>
<root>
    <level value="ALL" />
    <appender-ref ref="FileAppender" />
</root>

Я также знаю, как вставлять логи log4net в SQL с помощью adonetappender.

Однако я не могу понять эти два вопроса:

  1. Как вставить журналы json в базу данных сервера sql.
  2. Как вставить журналы json в базу данных без sql.

person Abi P    schedule 15.04.2015    source источник
comment
Для 1) просто настройте приложение ADO.Net соответствующим образом, а для 2) это зависит от того, какую базу данных вы используете, например, для MongoDB вы можете использовать tog4mongo-net   -  person stuartd    schedule 16.04.2015


Ответы (3)


Думаю, я понял. Я использую обычное приложение ado.net, а затем использую макет json для одного из параметров. –

person Abi P    schedule 17.04.2015

Я думаю, что вы не храните свои журналы в фактическом файле json, вы используете jsonlog.txt, который является текстовым файлом. Если вы хотите хранить jsonlogs в базе данных, вы можете настроить log4net, чтобы он делал это за вас. Взгляните на это.

https://logging.apache.org/log4net/release/config-examples.html

person COLD TOLD    schedule 15.04.2015
comment
Привет, я не уверен, как это сделать. Для вывода json я должен использовать приложение json. И тогда как мне настроить его часть adonet для вставки в базу данных? - person Abi P; 17.04.2015
comment
Привет, кажется, я понял. Я использую обычное приложение ado.net, а затем использую макет json для одного из параметров. - person Abi P; 17.04.2015

Вставка в no-sql была основной причиной появления SerializedLayout. Этого можно добиться несколькими способами, но вам, скорее всего, понадобится какой-то промежуточный процессор для журналов. Я могу порекомендовать logstash и nxlog. Тогда Logstash может легко хранить ваши файлы в эластичном поиске.

Они оба могут получать журналы из:

  1. Файлы
  2. Network
    1. TCP
    2. UDP
    3. системный журнал

Другими вариантами могут быть очереди, такие как RabbitMQ или AMQP. Я не играл с такими. Доступность и отказоустойчивость зависят от ваших потребностей и ресурсов.

Что касается форматирования связки JSON, см. ответ на другой ваш вопрос - https://stackoverflow.com/a/36169213/481812

person Rbjz    schedule 23.03.2016