Применение средств ведения системного журнала Формирование сообщений для записи в журнал

Серверы и (в меньшей степени) клиенты вырабатывают сообщения, предназначенные для системных программистов или системных администраторов. Безусловно, в процессе разработки основная часть этих сообщений должна помочь программисту выявить ошибки в коде. А после того как сервер становится основой производственной службы, вырабатываемые им сообщения обычно сводятся к сообщениям об ошибках, формируемых при обнаружении сервером необычных обстоятельств или непредвиденных событий. Тем не менее, даже производственное программное обеспечение может регулярно формировать сообщения. Например, сервер может быть запрограммирован на ведение журнала всех входящих запросов на установление соединения или всех транзакций. Для обеспечения контроля за надежностью защиты системы сервер может быть запрограммирован на регистрацию информации о каждом своем действии, когда он отклоняет запрос на установление соединения от клиента, не обладающего соответствующими правами. новеллини Прекрасное сочетание качества и цены: Кухня амати - доступные цены!

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

30.24.2. Преимущество перенаправления и использование стандартного устройства вывода сообщений об ошибках

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

В системе Linux каждому процессу предоставляется стандартный дескриптор файла для вывода сообщений об ошибках (дескриптор 3). Поэтому при разработке серверного программного обеспечения в этой системе можно не задумываться над тем, будет ли сервер выводит сообщения об ошибках на принтер консоли или в файл. Вместо этого в программе предусматривается вывод всех сообщений об ошибках в стандартный дескриптор устройства вывода сообщений об ошибках, а подключение этого дескриптора к файлу или системной консоли выполняется во время запуска сервера на выполнение. Фактически само понятие стандартного устройства вывода сообщений об ошибках представляет собой своего рода абстракцию, которая позволяет не учитывать в исходном коде конфигурацию среды времени выполнения; в исходном коде просто применяется стандартный дескриптор устройства вывода сообщений об ошибках без учета того, к чему он будет привязан: к файлу или к терминалу.

Расширение области применения программы, достигаемое с использованием стандартного дескриптора устройства вывода сообщений об ошибках, становится очевидным при организации работы сетевого узла, на котором установлено несколько компьютеров определенного типа, и на них эксплуатируются отдельные экземпляры определенного сервера. На одном компьютере для регистрации сообщений об ошибках может применяться принтер консоли, а на другом — файл. Системный администратор может вызвать на выполнение одну и ту же серверную программу на обоих компьютерах без ее перетрансляции, поскольку система Linux позволяет выполнить перенаправление ввода/вывода во время запуска сервера.

Похожие статьи Меню Опрос Фото Популярное