Где смотреть логи сервера. Анализ логов сервера

02.05.2019

Лог-файлы (log file) сервера – это простой текстовый файл , в котором записываются все действия в хронологическом виде. Это все запросы, обращенные к веб-сайту и ошибки, связанные с ними.

Как происходит контакт пользователя с вашим сайтом? Он набирает адрес в браузере и на сервер идет запрос, который записывается в файле лога в виде «GET <адрес_ресурса>» ). Далее в одну строку записаны и другие данные: это код ответа сервера, ip пользователя, дата, версия браузера, операционная система, страница, с которой зашел пользователь и т.д.

Нам нужно запомнить, что обычные запросы выглядят так: «GET <адрес_ресурса>»). Рядом посмотрите на ответ сервера. Если 200, то со страницей все нормально. Если 404 или другой, то есть проблемы.

Для чего нам нужно анализировать логи сервера?

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

Например, ваш сайт стал жутко тормозить. Самое время почитать записи в лог-файлах.

Вы увидите, что с одного и того же айпи поступают однотипные запросы, которые начинаются с «POST» . Это и есть атаки злоумышленников на ваш сайт. Они могут подбирать пароли к админке, могут искать уязвимости в ваших скриптах. Именно поэтому нужно всегда их обновлять. Могут многократно обратиться к запуску крона – это нужно функциональности, которую можно и отключить на время массированных атак. Все эти действия сильно грузят сервер и тормозят загрузку веб-страниц.

К примеру, обращение «POST /xmlrpc.php», «POST /wp-login.php» для вордпресс может положить сервер. Смотрите все записи с «POST».

Решите эту проблему и снимите нагрузку. Сайт вновь начнет летать.

Где находятся файлы логов сайта на сервере?

Обычно они расположены в папках log и logs . Называются access.log .

Скачайте файл в себе на комп или откройте сразу на сервере (если он небольшой) и проанализируйте все записи. На первый взгляд там очень много непонятного. Но вы сосредоточьтесь на своей проблеме и для начала просто смотрите ответы кодов сервера и типы запросов «GET» или «POST» .

GET -данные передаются в адресную строку. В этом случае посетитель нажимает на ссылку или вводит адрес в адресную строку браузера. Дополнительные данные не передаются.

POST - например, пользователь заполнил форму и нажал на кнопку. Дополнительные данные передаются.

А теперь рассмотрим , разработанные на cms Wordpress и их предотвращение.

" Панели управления аккаунтом. В этих логах содержится информация о посещениях сайта пользователями сети Интернет.

Пример записи:

domen.ru 127.0.0.1 - - "GET /index.html HTTP/1.1" 200 198 "http://domen.ru/" "Mozilla/5.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1)" 16143 0

Здесь:

  • domen.ru - имя домена, т.е имя сервера, записанное в формате, определенным директивой UseCanonicalName;
  • 127.0.0.1 - удаленный хост, т.е. IP-адрес посетителя;
  • "-" - идентификатор клиента (записывается, если включена директива IndentyCheck и клиент предоставил данные для идентификации);
  • "-" - имя удаленного пользователя, если запрос требовал аутентификации HTTP;
  • - дата и время запроса;
  • GET /index.html HTTP/1.1 - первая строка запроса;
  • 200 - последний статус ответа сервера, если имели место внутренние перенаправления запроса (в данном случае успешное обращение);
  • 198 - размер ответа сервера в байтах, исключая HTTP-заголовки (если ответ сервера равнялся 0 байтов, то вместо 0 записывается прочерк "-");
  • "http://domen.ru/" "Mozilla/5.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1) - значение заголовка с именем header в запросе;
  • 16143 - PID процесса apache, выполняющего запрос.
  • 0 - время работы процесса apache.

Обращаем внимание, что параметры, не имеющие значения, обозначаются в логах в виде "-"

Логи ошибок (error_log)

Включить данные логи можно в разделе "Log файлы " Панели управления аккаунтом.
В данные логи записываются ошибки Apache и всех его модулей, например, ошибки доступа или отсутствия файла на аккаунте, или же ошибки обработки mod_rewrite.

Пример записей:

domen.ru File does not exist: /home/d/domen/public_html/favicon.ico
domen.ru /home/d/domen/public_html/.htaccess: RewriteRule: cannot compile regular expression "^edit_serv/(.*):({2,20}+)/$"

В логах указывается имя домена, к которому было зафиксировано обращение, время обращения, IP-адрес, с которого была произведена попытка доступа и, непосредственно, текст ошибки.

Для того, чтобы в логах ошибок выводились ошибки php, необходимо прописать в файл.htaccess аккаунта следующие директивы:

php_flag display_errors off
php_value error_log "путь_к_файлу_логов"

Путь к файлу логов можно увидеть в разделе "Log файлы" Панели управления аккаунтом. Имеет вид:
/home/d/domen/error_log

FTP логи

FTP логи могут быть предоставлены по запросу в службу технической поддержки. В них отражены действия с аккаунтом, которые производились по FTP. Логи помещаются в корневую папку аккаунта и состоят из двух файлов с именами вида vsftpd.log и xferlog.

  • В файле vsftpd.log содержатся логи FTP-сессий (вход/выход).
  • В файле xferlog содержится информация о действиях, которые производились с файлами.

Пример записи в файле vsftpd.log:

Sun Jan 19 15:17:05 2014 FTP command: Client "100.0.0.2", "USER login"

Здесь указавается три основных параметра:

  • Sun Jan 19 15:17:05 2014 - дата и время входа пользователя;
  • login - логин пользователя;
  • 100.0.0.2 - IP-адрес, с которого осуществлялся доступ.

Обращаем внимание, что запись с IP-адресом 192.168.1.254 означает, что вход осуществлялся через файловый менеджер из Панели управления аккаунтом.

Пример записи в файле xferlog:

Tue Jan 21 15:56:06 2014 1 127.0.0.1 34181 /test.txt b _ o r login ftp 0 * c

Здесь:

  • Tue Jan 21 15:56:06 2014 - дата и время;
  • 34181 - размер файла;
  • test.txt - имя файла;
  • b _ o r - операции, произведенные с файлами;
  • login - логин пользователя, который выполнял действия.

Операции с файлами ("b _ o r") имеют четыре параметра:

  1. Тип передачи: a – текстовый (ascii) b – бинарный. В данном случае b.
  2. Метка особых действий, С – файл был сжат (compressed), U – файл был распакован (uncompressed), T – файл был заархивирован (в tar), "_" особых действий не было. На данном примере: "_" – особых действий не было.
  3. Направление: o – исходящее, i – входящее, d – удаление. На данном примере: o – исходящее, т.е файл загружался с сервера.
  4. Pежим доступа: a – анонимный, r – с регистрацией. На данном примере: r – с регистрацией, был осуществлён вход по логину и паролю.

Логи операций Панели управления

В разделе "Логи операций " Панели управления аккаунтом можно просмотреть действия, которые совершались в ПУ аккаунта, а также с каких IP-адресов производился доступ. Данные логи доступны за весь период существования аккаунта.

Понятие

Логи сервера (лог-файлы, журнал сервера) - фалы, хранящиеся на сервере, которые содержат системную информацию сервера, а так-же протоколирующие все возможные данные о посетителе веб-ресурса.

Логи используются системными администраторами для анализа посетителей , изучения закономерности поведения определенных групп пользователей, а так-же получения различной информации о них, такой как: используемый браузер, IP адрес, данные о географическом положение клиента и многое другое. По мимо анализа, таким образом можно узнать о несанкционированных доступах к сайту, точнее узнать, кем именно он был произведен, и передать данные о данном случае в соответствующие органы.

Данные в лог-файле, в чистом виде, будут не понятным рядовым пользователям, которые увидят во всем этом всего-лишь набор символов в непонятном порядке. Но для системных администраторов и веб-разработчиков, это является вполне читабельным текстом, и довольно полезной информацией.


Последовательность событий

При каждом обращении клиента к веб-ресурсeсе, срабатывают сразу несколько событий, о последовательности которых мы и поговорим.

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

2. Передача запрашиваемых данных. Происходит передача запрашиваемых данных (интернет-страница, файлы, cooki, и др.) от сервера на компьютер пользователя.

3. Запись в журнал сервера. После всего, происходит запись в журнал, в котором указываются все данные, которые фигурировали в прошлых двух событиях. Это вся информация отправленная в первом пункте, а так-же информация о переданных данных.

Как посмотреть логи сервера

Лог-файлы, хранятся в файле access.log не зависимо от того, каким типом веб-сервера вы пользуетесь (Apache, Nginx, прокси-сервером squid и т. д.) Данный файл является текстовым документом, на каждой строчке которого, записывается по одному обращению. Форматов записи в access.log довольно много, но наиболее популярным является combined, при котором, запись имеет следующий вид и последовательность:

Код: %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"
Где:

%h - хост/IP-адрес, с которого произведён запрос;
%t - время запроса к серверу и часовой пояс сервера;
%r - версия, содержимое и тип запроса;
%s - код состояния HTTP;
%b - количество отданных сервером байт;
%{Referer} - URL-источник запроса;
%{User-Agent} - HTTP-заголовок, с информацией о запросе (клиентское приложение, язык и т.д.);
%{Host} - имя Virtual Host, к которому идет обращение.

в готовом виде данная строка имеет примерно следующий вид:

127.0.0.1 - - "GET /index.php HTTP/1..0 (compatible; MSIE 7.0; Windows NT 5.1)"

На чтение логов в ручную, уйдет довольно много времени и сил. Поэтому, опытные веб-мастера используют специальное программное обеспечение, которые называют «Анализаторы лог-файлов». Они анализируют все данные, которые довольно сложны к прочтению человеком, и выдают структурированные данные. Это такие программы как: Analog, WebAnalizer, Webalizer, Awstats, Webtrends, и т.д. Видов специального программного обеспечения довольно много, среди них есть как платные программы, так и бесплатные. Поэтому я уверен, что каждый найдет себе что-то по душе.

Где найти логи сайта

Если у вас обычный хостинг, то скорей всего вам придется написать своему хостеру и запросить у него логи. Так-же, довольно часто, вы можете запросить их через панель хостера. У разных хостеров - по разному. Для примера, что бы запросить у моего хостера, достаточно сделать один клик на главной странице панели:


Если у вас есть доступ к системным папкам сервера, то вы можете найти логи по адресу /etc/httpd/logs/access_log в 99 случаях из 100.

Журнал ошибок error.log

Error.log - файл, в котором так-же ведутся логи. Но не посетителей, а возникших на сервере ошибок. Как и в случае с access.log , каждая строка файла - отвечает за одну возникшую ошибку. Запись ведется с учетом такой информации, как: точная дата и время возникновения ошибки, IP-адрес которому была выдана ошибка, тип ошибки, а так-же причина ее возникновения.

Заключение

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

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

Рассмотрим несколько вариантов мест хранения лог файлов, просто для того, что бы вы могли сориентироваться и найти их на своей хостинг площадке даже если у вас другая панель управления. В данном примере мы пользуемся хостингом с панелью Direct Admin.

Заходим в панель управления хостингом и жмем на интересующий нас сайт.

И здесь уже выбираем Полный журнал обращений , если вас не интересует журнал обращений за весь день то можно просмотреть только последние 100 строк или 10

Добираемся к логам с помощью редактора, которым далеам сайты. В данном примере используем adobe dreamweaver. Подключаемся к хостингу, открываем папки domains — ваш сайт и видим папку logs , внутри которой лежит нужное нам содержимое

Теперь то же самое, но для панели ISP manager. Заходим в панель, слева в меню жмем Менеджер файлов и видим папку logs

Тоже, но с помощью редактора: папка с логами находится в корне вашей хостинг площадки.

Теперь мажордомо, как видим, папка с логами лежит тоже в корне площадки.

P.S. если вы желаете посмотреть лог не за сегодняшний день, а за прошедший или более поздний, то наилучшим вариантом будет скачать архивы .log.tgz с ранними логами файловым менеджером на компьютер, распаковать и уже открыть блокнотом.

как открыть лог файл

Самым оптимальным вариантом для чтения логов будет использование программы-редактора dreamweaver и блокнота notepad++. Для начала нам надо настроить редактор, что бы он по умолчанию открывал файлы такого типа блокнотом.

В меню программы выбираем Правка — настройка , слева выбираем Типы файлов и редакторы . Жмем на плюсик в левом окне, в открывшейся строке пишем расширение лог-файла.log (обязательно с точкой впереди). Теперь в левом окне выделяем наше расширение, а в правом тыкаем на плюсик, в открывшемся окне выбираем нашу программу-блокнот (для win7 это C\Program Files 86\Notepad++\notepad++.exe )

P.S. dreamweaver для настройки открываем от имени администратора, иначе программа будет закрываться при выборе блокнота.

P.S. таким же образом можно настроить программу для открытия подобных файлов: .htaccess, .ru_error_log и т.п. 🙂

анализ логов или как читать логи

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

Как правило строки в логах довольно длинные, каждую строку мы разделим на несколько частей.

Для примера разберем одну строчку и для наглядности разделим ее разными цветами на несколько основных нужных нам частей.

чтение и анализ лог-файла пример 1

92.100.6.63 — 200 23261 «http://www.www..html » «Opera/9.80 (Windows NT 5.1; U; MRA 5.10 (build 5265); ru) Presto/2.10.229 Version/11.64»

92.100.6.63 — ip адрес с которого был заход на ваш сайт

— тут понятно, дата и время захода (по серверу) вплоть до секунды

«GET /hitrosti/htacccess/4.jpg HTTP/1.0» — первая часть заключенная в кавычки покажет нам каким методом (head, get, post) и к какому файлу было обращение. (При заходе пользователя на ваш сайт в логах остается несколько строк, потому что страница сайта состоит из нескольких файлов включая картинки, стили и т.п) Один файл- одна строчка в логах

200 — ответ полученный посетителем, код 200 означает, что пользователь получил что хотел, т.е все ок. рекомендую ознакомиться с кодами ответов сервера

«http://www.www..html «- вторая часть заключенная в кавычки — реферер, показывает нам откуда запрашивается файл. В нашем случае файл 4.jpg был запрошен при открытии страницы /htaccess.html

«Opera/9.80 (Windows NT 5.1; U; MRA 5.10 (build 5265); ru) Presto/2.10.229 Version/11.64 » — третья часть заключенная в кавычки — юзерагент, в юзерагенте мы можем увидеть версию браузера, версию операционной системы, язык браузера.

чтение и анализ лог-файла пример2

92.38.234.215 — ip адрес бота

«GET / HTTP/1.0» метод обращения get, поскольку файл к которому обращается бот не указан, значит запрос был к морде сайта, ну и время обращения

200 — с сайтом все хорошо

«-» — поле реферер не заполено, такми образом можем предположить что это бот

«mizukov-test» — я точно знаю, что это бот, потому что сам прописал его в поле юзер-агент в системе мониторинга сайтов:))))

исходя из краткого анализа данной строчки лога мы видим, что в ночью заходил бот сервиса мониторинга сайтов и сайт прекрасно работал.

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

чтение и анализ лог-файла пример 3

95.108.158.134 — — «GET /robots.txt HTTP/1.0» 200 211 «-» «Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)»

95.108.158.134 — ip адрес с которого пришел…

«GET /robots.txt HTTP/1.0» — он пришел и прочитал файл robots.txt

200 — мы уверены, что он прочитал файл потому что он получил ответ 200

«-» — поле реферера пусто, а в логах строчка только одна. Значит это робот.

«Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)» — поле юзерагент. ОН представляется как браузер мазила/5.0 но мы знаем что это был основной индексирующий робот яндекса.

вобщем то надеюсь вам стало понятно, что структура логов всегда одинакова (основные части)1-ip 2-дата и время 3-метод обращения и запрашиваемый файл 4-реферер 5-юзер-агент

При анализе логов обратите внимание на ботов основных поисковых систем, как часто они вас навещают, какой файл запрашивают и какой ответ сервера получают. Если ответ отличный от 200 или 304 то стоит заняться исправлением ошибок на сайте.

Дабы избежать сильной нагрузки на сервер от ботов не следует пренебрегать директивой Crawl-delay: в файле robots.txt Особенно могут оборзеть боты майла или рамблера, да так что сервак буквально падает.

Ну а ботов беспредельщиков, которые не принимают к сведению директивы robots мы, балгодаря анализу логов, тупо будем банить разными методами. Но об этом уже в другой статье.

Инструкция

Выберите раздел логов Windows, который необходимо почистить. Кликните по иконке «Мой компьютер» на рабочем столе и выберите пункт «Управление...» контекстного меню. Либо активируйте ярлык «Управление компьютером», находящийся в папке «Администрирование» (в нее можно перейти из окна «Панель управления», открываемого при помощи соответствующего пункта раздела «Настройка» меню «Пуск»). Запустится консоль MMC.

В дереве «Управление компьютером (локальным)» последовательно разверните элементы «Служебные программы» и «Просмотр событий». Выделяйте вложенные пункты и просматривайте логи. Определите, какие разделы необходимо очистить.

Почистите логи Windows. Выделите один из элементов категории «Просмотр событий», выбранных на первом шаге. Для этого кликните по нему левой кнопкой мыши. Разверните раздел «Действие» главного меню приложения или откройте контекстное меню элемента, кликнув по нему правой кнопкой. Выберите пункт «Стереть все события». Будет выдан запрос на предварительное сохранение удаляемых данных. Если это необходимо, нажмите «Да» и сохраните события во внешний файл журнала. Далее логи будут очищены.

В операционных системах Linux или FreeBSD найдите файлы логов, обслуживаемых сервисом syslogd, которые нужно удалить. Откройте файл /etc/syslog.conf. Просмотрите его. Получите пути к файлам логов нужных подсистем или приложений.

Остановите сервис syslogd. Начните сеанс пользователя root. Для этого переключитесь в текстовую консоль или запустите эмулятор терминала. Войдите с учетными данными root или начните сеанс командой su. Выполните в консоли команду:
service syslogd stop
Дождитесь остановки сервиса.

Почистите логи. С помощью команды перенаправления перезапишите содержимое файлов логов, найденных на третьем шаге, данными . Например, чтобы очистить файл /var/log/syslog/messages, выполните команду:
> /var/log/syslog/messages

Запустите сервис syslogd командой:
service syslogd start
Дождитесь окончания процесса запуска службы.

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

Вам понадобится

  • - административные права на локальной машине.

Инструкция

Посмотрите логи, сохраненные в журнале событий Windows. Запустите консоль MMC. Для этого кликните правой кнопкой мыши по значку «Мой компьютер», расположенному на рабочем столе и выберите пункт «Управление...» появившегося контекстного меню. Можно также открыть папку «Панель управления», воспользовавшись соответствующим пунктом раздела «Настройка» меню «Пуск». Далее надо перейти в папку «Администрирование» при помощи одноименного ярлыка, а затем открыть «Управление компьютером».

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

Просмотрите логи, сохраненные во внешнем файле журнала Windows. При необходимости откройте окно «Управление компьютером» так, как это было описано в первом шаге. В левой панели разверните элемент «Служебные программы». Разверните и выделите пункт «Просмотр событий». Кликните по нему правой кнопкой мыши или откройте раздел «Действие» главного меню. Кликните по пункту «Открыть файл журнала».

В отобразившемся диалоге перейдите к директории, в которой находится файл журнала событий Windows. Выделите его в листинге. В выпадающем списке «Тип журнала» выберите один из элементов («Безопасность», «Приложение», «Система»). При необходимости измените название в текстовом поле «Выводимое имя». Нажмите кнопку «Открыть». Просмотрите загруженный журнал, выделив добавленный элемент в левой панели окна.

Найдите один из файлов системных журналов, обслуживаемых сервисом syslogd в операционных системах семейства Linux или FreeBSD. Перейдите в каталог /etc и откройте в программе просмотра файл syslog.conf (для этого в большинстве случаев требуется доступ с правами пользователя групп adm или root). Проанализируйте содержимое файла. Узнайте пути к файлам журналов, в которые добавляются сообщения интересующих вас подсистем и сервисов.

Посмотрите сохраненные логи в ОС семейства Linux или FreeBSD. Откройте файлы, пути к которым были определены на предыдущем шаге, в программе просмотра. Для этого, скорее всего, потребуются права доступа группы adm или root. Также можно воспользоваться командой tail для вывода нескольких последних строк логов в консоль. Например:
tail -n 15 /var/log/messages
Данную команду весьма удобно использовать для быстрого просмотра последних событий, добавленных в лог.

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

Вам понадобится

  • - компилятор языка C;
  • - Windows Platform SDK;
  • - Develop-пакет для glibc.

Инструкция

Добавьте поддержку записи логов в системный журнал из своего приложения, предназначенного для работы под управлением операционных системах семейства Windows.

Используйте API функцию RegisterEventSource для регистрации приложения в качестве источника событий, функцию ReportEvent для добавления записи в журнал и функцию DeregisterEventSource для закрытия дескриптора, возвращенного RegisterEventSource.

Вызов RegisterEventSource имеет смысл производить в процессе инициализации приложения и сохранять возвращенный ей дескриптор все время работы с тем, чтобы из различных мест программы можно было производить размещение записей в логе. Простейший пример записи в лог Windows может выглядеть так:

HANDLE hLog = RegisterEventSource(NULL, "MyApplicationName");

if(hLog != NULL)
{
if(ReportEvent(hLog, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL,
1, 0, "Message text\0", NULL))
{
// событие успешно помещено в лог
}

DeregisterEventSource(hLog);
}

Более подробно о семантике работы функции ReportEvent можно узнать в MSDN по ссылке http://msdn.microsoft.com/en-us/library/windows/desktop/aa363679%28v=vs.85%29.aspx . Кроме того, необходимо поместить некоторые данные об исполняемом модуле приложения в системный реестр, а в сам модуль или стороннюю динамическую библиотеку добавить ресурсы в определенном формате. Подробнее о ключах реестра для сервиса event log можно узнать на странице http://msdn.microsoft.com/en-us/library/windows/desktop/aa363661%28v=vs.85%29.aspx .

Писать логи в Linux-совместимых операционных системах обычно можно при помощи демона syslog. Эта служба имеет интерфейс прикладного уровня в виде набора функций, декларации которых помещены в заголовочный файл syslog.h.

Используйте функцию openlog для создания подключения к сервису syslog из приложения или библиотеки. Вызывайте функции syslog или vsyslog для размещения сообщений в логе. После окончания записи событий или при завершении работы приложения закройте соединение с сервисом, вызвав функцию closelog. Кроме того, можно настроить параметры игнорирования вызовов, добавляющих записи о событиях с определенным приоритетом при помощи функции setlogmask. Пример записи сообщений в лог может выглядеть так:

openlog("MyApplication", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
syslog(LOG_NOTICE, "MyApplication is launched with PID %d", getuid ());
syslog(LOG_INFO, "Information message !");
closelog();

Более подробно с информацией о параметрах функций прикладного программного интерфейса syslog можно ознакомиться в info-документации по libc.

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

Используйте функции fopen и fclose стандартной библиотеки C для открытия и закрытия файла соответственно. Вызывайте fwrite для добавления информации в файл. Также можно применять платформо-специфичекие функции (например, CreateFile под Windows) и методы объектов используемых фреймворков, инкапсулирующих функционал работы с файлами.