Здесь стоит отступить и проанализировать требования.
Обычно пользователи коммерческого использования должны понимать бизнес-ориентированное поведение сайта. Сколько людей зарегистрировалось вчера? Сколько времени они потратили на сайте? Они что-то купили?
Общим способом удовлетворения этого требования является настройка пакета аналитики (например, Google Analytics). Пакеты Analytics хорошо понимают поведение на веб-сайте и могут легко настраиваться для изменения структур отчетов и анализа. Тем не менее, они обычно не очень хорошо сообщают о отдельных действиях, и их отчетность основана на «сетевом поведении» - вам нужно перевести «нажал кнопку добавления в корзину» в бизнес-концепцию «купил что-то».
Пользователи службы поддержки пользователей и логика приложений должны понимать специфическое поведение людей. Когда служба поддержки получает звонок «Справка, я не могу войти», они, вероятно, хотят знать, когда последний раз этот пользователь вошел в систему?Если логический модуль приложения хочет знать, интересуется ли этот пользователь продуктом X, ему нужно знать, смотрят ли они на связанные продукты.
Эти данные обычно включаются как реляционные данные в базу данных, так как их легко запросить. Тем не менее, трудно модифицировать реляционные модели, а нетехнические пользователи не могут писать SQL-запросы, поэтому они гораздо более жесткие.
Техническим пользователям необходимо понять здоровье приложения и уметь расследовать инциденты.
Эта информация обычно хранится в виде файлов журнала. Файлы журналов часто огромны - веб-сайт с умеренной нагрузкой будет создавать журналы apache в размере нескольких гигабайт в день - и может быть запрошен только с помощью специальных средств анализа журналов; они ориентированы на технических пользователей, а не на деловых людей. Файлы журналов часто сохраняются на короткий период (недели или месяцы) и поворачиваются один раз в день. Поэтому, отвечая на вопрос «когда пользователь x последний вход в систему», может потребоваться разбор средств журналов журнала за месяц, а если вы удалите журналы через месяц, вы не сможете получить правильный ответ. Тем не менее, операторы журнала легко вставляются в код, и изменение ведения журнала (например, только запись «ошибка», а не «отладка» сообщений) очень проста.
Итак, для «анализа» (я предполагаю, что это деловые пользователи) - вставьте в базу данных или используйте веб-аналитику. Для «целей безопасности» (я предполагаю, что это для анализа инцидентов техническими пользователями) - файлы журналов.
В зависимости от того, как вы хотите использовать данные. Вы не можете действительно анализировать файлы, поэтому вам придется загружать их в базу данных для этой цели в любом случае. Поэтому, как правило, если вы уже знаете, что собираетесь анализировать эти данные, тогда поместите их в базу данных. Если вы, вероятно, этого не сделаете, но вам нужно будет _maybe_ намного позже сделать это как исключение, тогда файл журнала может сэкономить силу и вычислительную мощность. – arkascha