2015-10-19 5 views
1

У меня есть требование для моего приложения, чтобы узнать, произошли ли изменения со сложным деревом объектов с определенного времени. Изменения могут быть любыми вещами: обновлениями, удалениями, даже представлениями.Является ли плохой практикой для приложения читать собственный журнал?

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

Вместо этого я имею в виду просто использовать файл журнала программ. Я прочитаю последнюю запись, которая соответствует определенному шаблону (поэтому я знаю, что запись относится к одному из изменений, которые я ищу), и если метка времени больше, чем моя контрольная точка, я знаю, что изменения произошли со времени моего контрольно-пропускного пункта.

Это довольно просто, но я не уверен, есть ли что-то, о чем я не думал. Одно дело в том, что мне нужно убедиться, что уровень ведения журнала установлен таким образом, чтобы сообщения действительно отображались в журнале, но это не должно быть большой проблемой. Я мог бы иметь несколько лог-файлов, где я обязательно включу абсолютно все в одном из них, и пусть другой будет настраиваться.

ответ

0

Технически это будет работать до тех пор, пока вы не будете пытаться писать на него в одно и то же время (используйте только исторические журналы), но это побеждает цель файла журнала. Возможно, вы ожидаете отслеживания исключений и всякого другого мусора, которые могут смутить ваш синтаксический анализ. Я бы определенно рекомендовал написать отдельный журнал данных, который будет контролироваться вашим приложением с точки зрения чистоты данных.

Возьмем, к примеру, если данные записываются в системный журнал и возникает ошибка, отображающая «эти данные: ... имеет ошибку». Ваш синтаксический анализ может прочитать дублируемую копию, или, что еще хуже, если у вас были другие разработчики, которые сбросили эту информацию, вы не сможете контролировать это.

+0

Действительно. Было бы оптимально хранить записи для этого шаблона использования в собственном файле журнала без каких-либо других типов записей. И письмо станет проблемой, это правда, но это никогда не будет иметь отношение к этому конкретному делу. Спасибо за ваши входы – Eldamir

+0

«Это никогда не произойдет» - это не правильное отношение. Рассмотрите, что происходит, когда происходит исключение, или другие силы работают вне вашего контроля. – ergonaut

+0

Ну конечно, но в этом случае домен для исключений довольно мал. Не трудно избежать за счет резервного кодирования – Eldamir

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