2012-05-08 2 views
0

Если у меня есть приложение, которое записывает файл журнала в файловую систему, и позже я хочу, чтобы вы могли сбрасывать эти журналы в RDBMS, чтобы иметь возможность легче запрашивать конкретные элементы (например, я хочу запросить все журналы, связанные с транзакцией ID X, а не только запросы, подобные всем с уровнем журнала INFO или с некоторой даты).Лучший способ форматировать файлы журналов для РСУБД?

Что такое надежный способ форматирования сообщений журнала, чтобы он мог легко помещать его в СУБД, чтобы вносить изменения в то, что я фактически регистрирую (добавляя больше вещей)?

+0

Любые конкретные RBDMS? –

ответ

0

Укажите атрибуты записи журнала как пары имя-значение. Вам нужно будет сделать выбор в отношении разделителя для части ценности; то есть он должен быть тем, что не будет отображаться в самом значении.

Некоторые атрибуты записи журнала, если вы не думали о том, что часть проблемы:

  • метки времени
  • тяжести (со смертельным исходом, ошибка, информация, отладка), вероятно, в виде строки
  • место в исходном коде, из которого была сделана запись, как имя файла и номер строки и/или имя класса и имя метода
  • сделка
  • свободный текст: любой код должен записать в записи

считает также:

  • стека трассировки: вид грязными, так как он имеет тенденцию быть неустановленной итерация
  • информации исключения, предоставленным время выполнения (C#? Java?)
  • идентификатор пользователя
  • нить Информация

Это тот свободный текстовый атрибут, который будет конкурировать с вашим выбором разделителем.

Запись пример журнала игрушка, используя двойные скобки в качестве разделителя:

timemstamp=[[24-Apr-2012 15:48:28.749]] severity=[[error]] location=[[Foo.java (45)]] transaction=[[48241]] free=[[Cannot open file 'zqx3.txt']] 

Ваш вопрос не помечена с языка реализации. В Java land log4j является популярной структурой для ведения журнала. Я считаю, что для .NET есть подходящие порты или похожие на работу.

См. Также A simple log file format.