Мы использовали базу данных журнала на моей последней работе, и это было здорово.
У нас были хранимые процедуры, которые выдавали бы обзоры общего состояния системы для разных показателей, которые я мог бы загружать с веб-страницы. Мы также могли бы быстро выплескивать трассировку для данного приложения за определенный период, и если бы я хотел, было бы легко получить это как текстовый файл, если вы действительно просто как grep-ing файлы.
Для обеспечения того, чтобы система регистрации сама по себе не стала проблемой, существует, конечно, общая структура кода, которую мы использовали среди различных приложений, которые обрабатывали запись в таблицу журналов. Часть этой структуры включала в себя также протоколирование файла, в случае, если проблема связана с самой базой данных, а часть ее связана с циклическим использованием журналов. Что касается проблем пространства, база данных журнала находится в другом расписании резервного копирования, и это действительно не проблема. Пространство (не поддерживается) дешево.
Я думаю, что это касается большинства проблем, выраженных в других местах. Все дело в реализации. Но если бы я остановился здесь, это все равно было бы случаем «не намного хуже», и это плохая причина, чтобы решить проблему настройки ведения журнала БД. Что мне понравилось в этом, так это то, что он разрешил нам сделать вещей, что было бы гораздо сложнее сделать с плоскими файлами.
Было четыре основных улучшения над файлами. Во-первых, это обзор системы, о котором я уже говорил. Во-вторых, и самое важное, это проверка на отсутствие какого-либо приложения сообщений, где мы обычно ожидаем их найти. Такого рода вещи почти невозможно обнаружить в традиционном ведении журналов, если вы не тратите много времени каждый день на просмотр журналов с умопомрачительными приложениями, которые просто говорят вам, что все в порядке в 99% случаев. Удивительно, как освободить представление, чтобы показать недостающие записи журнала. В большинстве дней нам вообще не нужно было смотреть на большинство файлов журналов ... что-то, что было бы опасно и безответственно без базы данных.
Это поднимает третье улучшение. Мы создали единый ежедневный электронный адрес, и только осталось всего вещи, которые нам нужно было просмотреть в дни, когда все шло нормально. Включенное электронное письмо показало ошибки и предупреждения. Пропущенные журналы были перезаписаны как предупреждение тем же заданием db, которое отправляет электронное письмо, а отсутствие электронной почты было большим делом. Мы могли бы отправить конкретное сообщение в журнал на наш трекер ошибок одним щелчком мыши прямо из ежедневной электронной почты (это было html-форматировано, вытащили данные из веб-приложения).
Окончательное улучшение состояло в том, что если бы мы хотели более внимательно следить за конкретным приложением, скажем, после внесения изменений, мы могли бы подписаться на канал RSS для этого конкретного приложения, пока мы не будем удовлетворены. Это сложнее сделать из текстового файла.
Где я сейчас, мы больше полагаемся на сторонние инструменты и их возможности ведения журнала, а это значит вернуться к гораздо более ручному обзору. Я действительно скучаю по БД, и я предполагаю написать инструмент для чтения этих журналов и переписать их в БД, чтобы вернуть эти способности.
Опять же, мы сделали это с текстовыми файлами в качестве резервной копии, и это новые возможности, которые действительно делают базу данных полезной. Если все, что вы собираетесь сделать, это записать в БД и попытаться использовать его так же, как и старые текстовые файлы, это добавляет излишнюю сложность, и вы можете просто использовать старые текстовые файлы. Это способность создавать систему для новых функций, что делает ее полезной.
Действительно ли вы имеете в виду любую СУБД. Нет? Я имею в виду либо вы регистрируетесь в файлах, либо регистрируетесь в базе данных, верно? – 2008-10-16 20:01:59