Лучшим решением, безусловно, является AJAX в некотором качестве. Единственный способ заставить сервер «протолкнуть» вас так, как вы описываете (поддерживать открытый поток), - это оставить соединение HTTP открытым, что в конечном итоге вызовет тайм-ауты и потребит много ресурсов. Я бы заглянул в библиотеку Cometd . Недостатком этого является то, что я считаю, что это зависит от Java, хотя на сайте упоминаются Perl, Python и «другие языки». В худшем случае вы можете использовать конкретную реализацию причала только для мониторинга журналов на конкретном порту. Несмотря на это, эта структура, скорее всего, будет вашим лучшим выбором.
Любой веб-механизм чата, по сути, использует push-архитектуру, и было бы неплохо взглянуть на него для вдохновения. В этом случае вместо пользователей, создающих сообщения, которые отправляются другим пользователям, сервер создает события (когда генерируется сообщение журнала). Проверьте эту статью в чате Facebook , чтобы узнать, как они это делают. Возможно, стоит поискать в чате Google, если вы сможете найти что-нибудь о архитектуре.
Что касается фактической регистрации, я не уверен, что вам нужна помощь для этого, но log4php , которая в настоящее время находится в стадии инкубации, может быть хорошим местом для начала, поскольку она предоставляет вам конфигурацию которые могут одновременно регистрировать произвольное количество «регистраторов», таких как база данных, файл, сокет и т. д. Скорее всего, вы можете найти тот, который позволит вам привязать его к любой push-среде, которую вы выберете.
Удачи!