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

  • Результат определенных действий пользователя.
  • Прерывания поступающие в программу от оборудования.
  • События, генерируемые самими программами (например, получаемые в результате расчетов).
  • События, порождаемые программными ошибками (т.н. «исключения»).
  • События от операционной системы или другой программы, а также события имеющими любой другой источник.

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

Где используются лог-файлы

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

Полезные примеры

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

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

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

Вообще, на сегодняшний момент ни одно более или менее серьезное приложение не обходится без написания логов.

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

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

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

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

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

Debug - это информация для отладки. Логирование крупных операций, менее детально, чем в Trace. Здесь мы не так подробно описываем весь процесс операции, но, тем не менее, заносим в журнал основные операции . Например: Совершено обращение к БД. Из базы выбрано N записей. Записи успешно обработаны и отправлены клиенту.

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

Warn - сообщения о странной или подозрительной работе приложения. Это еще не серьезная ошибка, но следует обратить внимание на такое поведение системы. Например: Добавлен студент с возрастом 2 года. Студент получил отрицательный балл. Преподаватель завершил курс, в котором училось 0 студентов. В группе находится больше студентов, чем максимально возможно.

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

Fatal - сообщения об очень серьезных ошибках в системе. Чаще всего это связано с работоспособностью всего приложения или его окружения на сервере. На такие сообщения следует реагировать МАКСИМАЛЬНО оперативно. Например: Приложение постоянно перезагружается из-за нехватки памяти или места на жестком диске. Приложение завершило работу по неизвестной причине. Нет доступа к базе данных. Нет доступа к сети. Заблокирован какой-то порт.

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

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

Подобным образом мы можем описать, как работает наше приложение в целом, сообщения будут с пометкой Info.

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

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

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

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

Для того, чтобы начать логирование, мы подключим в наш проект платформу NLog. Это можно .

  • ${basedir} - корневой каталог нашего приложения
  • ${shortdate} - текущая дата в формате yyyy-MM-dd
  • ${longdate} - текущая дата в формате yyyy-MM-dd HH:mm:ss.ffff
  • ${callsite} - место вызова лога (название класса, название метода)
  • ${uppercase:${level} - уровень логирования
  • ${message} - непосредственно сообщение, которое будет записано в лог
  • ${newline} - символ новой строки

Public class StudentsRepository { private static Logger logger = LogManager.GetCurrentClassLogger(); //... }

Чаще всего следует объявлять один статичный логгер в пределах всего класса. Здесь мы посредством класса-менеджера LogManager объявили новый логгер, с которым будем работать.

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

Public Student GetStudentById(int id) { //здесь моделируется ситуация реальной выборки студента из базы данных... logger.Trace("Запрашиваемый id студента: " + id); logger.Trace("Попытка подключения к источнику данных"); logger.Trace("Подключение к источнику данных прошло успешно. Затраченное время(мс): " + new TimeSpan(0, 0, 0, 0, 20).Milliseconds); var student = _studentsList.FirstOrDefault(x => x.Id == id); logger.Trace("Выборка прошла успешно. Выбран студент с id==" + student.Id); return student; }

Обратите внимание, что мы на объекте logger вызываем метод Trace(). Он имеет соответствующее значение - запись в лог сообщения типа Trace. Если обратиться к определению класса Logger, то можно обнаружить, там также присутствуют и другие методы для всех уровней лога, которые мы будем использовать далее.

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

Public List GetStudents() { //здесь моделируется ситуация реальной выборки студентов из базы данных... logger.Debug("Произведено подключение к базе данных"); logger.Debug("Произведена выборка всех студентов"); return _studentsList; }

Идем далее. На уровне Info мы описываем регулярные операции в нашем приложении, то есть поднимаемся еще на уровень выше. Предположим, что мы работаем над ASP.NET MVC приложением, и у нас есть действие в контроллере, которое обращается к ранее описанному методу GetStudentById():

Public ActionResult GetStudent(int id) { logger.Info("Преподаватель запросил студента с id == " + id); StudentsRepository repository = new StudentsRepository(); Student student = repository.GetStudentById(id); return View(student); }

Теперь добавим в логи сообщения уровня Warn. Как мы помним, на этом уровне логирования мы описываем все потенциально опасные ситуации, странное и нелогичное поведение компонентов. Будем заносить в лог запись, если студенту меньше 15 лет:

//... Student student = repository.GetStudentById(id); logger.Trace("Выборка прошла успешно. Выбран студент с id==" + student.Id); if (student.Age < 15) logger.Warn("Выбран студент моложе 15 лет"); //...

Var student = _studentsList.FirstOrDefault(x => x.Id == id); if (student == null) logger.Error("Ошибка. Не найден студент с id == " + id); logger.Trace("Выборка прошла успешно. Выбран студент с id==" + student.Id); if (student.Age < 15) logger.Warn("Выбран студент моложе 15 лет");

Теперь определим, что же нам записать на уровне Fatal. В нашем простейшем примере просто смоделируем подобную ситуацию:

//... logger.Fatal("Достигнут максимально допустимый в приложении предел использования оперативной памяти 90%"); //...

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

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

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

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

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

Какая информация еще нужна?

Как говорилось выше, помимо стандартных параметров, владелец сайта должен знать еще массу других данных:

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

Как это узнать?

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

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

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

Что это?

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

Как данные записываются в лог?

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

  • IP-адрес посетителя.
  • Точное время осуществления запроса.
  • Браузер, который использует пользователь.
  • Операционная система, которую использует пользователь.
  • Интересующая его страница.
  • Адрес страницы, с которой был осуществлен переход на целевую.

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

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

Какую информацию дают логи?

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

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

Инструкция

В свойствах меню «Мой компьютер» выберите пункт, отвечающий за управление. В операционных системах Seven и Windows Vista данный пункт указан в левой части панели меню «Мой компьютер». Также вы можете запустить данное меню из «Администрирования» в панели управления. У вас на экране должна появиться специальная консоль управления.

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

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

В пункте просмотра событий очистите логи операционной системы Windows, выделив его левой кнопкой мыши. Раскройте пункт «Действие», после чего запустите его контекстное меню при помощи выделения правой кнопкой мыши.

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

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

Полезный совет

Не выполняйте чистку логов самостоятельно, если не имеете навыков уверенного пользователя ПК.

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

Инструкция

Убедитесь в том, что вам понятна схема выбранной операции очистки, а вернее, усечения журнала транзакций: процедура может быть осуществлена только усечением свободного пространства в конце файла и напрямую связана с выбранным способом создания резервной копии. При выборе опции Full требуется обязательное завершение всех сохраняемых транзакций и создание резервной копии в режиме Remove inactive entries from transactional log. Выбор опции Simple приводит к усечению всего файла, но не подразумевает обязательного восстановления транзакций.

Усечение файла журнала транзакций может быть осуществлено с использованием инструмента Query Analyzer командойDBCC Shrinkfile (имя_файла_лога, нужный_размер_файла),а выполнение операции очистки возможно только после создания полной резервной базы той же командой. Используйте следующий синтаксис для определения параметров копирования:BackUp Log имя_выбранной_базы with truncate only.

Создайте полную резервную копию подлежащего очистке файла журнала транзакций, если необязательно восстановление данных с помощью инструмента Backup Database и снимите флажок на поле Remove inactive entries from transactional log. Перейдите на вкладку Options и измените значение параметра Recovery Model на Simple. Выполните операцию усечения выбранного файла вышеуказанной командой или воспользуйтесь синтаксисомDBCC ShrinkDatabase (имя_выбранной_базы_данных, необходимый_размер_остаточного_файла_в_%).

Примените флажок на поле Remove inactive entries from transactional log и осуществите создание резервной копии в исходном наборе из Enterprise Manager. Восстановите значение параметра Recovery Model - Full и повторите восстановление журнала из Enterprise Manager поверх существующей копии. Снова снимите флажок на поле Remove inactive entries from transactional log и, в очередной раз, выполните резервное копирование выбранного журнала транзакций.

Видео по теме

Источники:

  • Некоторые особенности эксплуатации Microsoft SQL Server 2000

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

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

  • Программное обеспечение:
  • - любой текстовый редактор;
  • - архиватор 7Zip.

Инструкция

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

Из разговора двух веб-мастеров:

– Вчера был на твоём сайте…

– Так это был ты!..

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

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

Большинство хостинг-провайдеров (хостеров) платного хостинга предоставляют своим клиентам возможность использовать уже установленные средства анализа. Например, для серверов Apache часто используется программа Webalizer , которая устанавливается в качестве дополнительного модуля веб-сервера.

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

Что такое лог-файл веб-сайта

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

Как происходит запись событий в лог-файл сайта

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

Примечания

1. По подсчётам исследовательской компании Netcraft , в июне 2009 г. в Интернете насчитывалось 238 027 855 сайтов. При этом доля веб-серверов Apache составила около 47%, Microsoft IIS – 24,80%, qq,com – 12,79%, Google – 4,98%, nginx – 3,69%, Sun – 0,30%.

2. Лог-файлы серверов Apache