Для чего нужны log файлы. Лог – что это такое — HOSTiQ Wiki

Для чего нужны log файлы. Лог – что это такое — HOSTiQ Wiki

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что это?

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

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

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

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

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

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

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

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

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

Лог: Лог (англ. log) журнал событий, дневник, запись, протокол; Лог форма рельефа, небольшая сухая долина. См. Балка; Топонимы: Лог посёлок в Иловлинском районе Волгоградской области; Лог деревня в Кадуйском районе… … Википедия

А, предл. о логе и в логу; мн. лога; м. Широкий, значительной длины овраг с отлогими склонами. Широкий лог. Лог зарос кустарником. В логу протекал ручей. * * * лог овраг с пологими задернованными склонами и плоским днищем. * * * ЛОГ ЛОГ, овраг… … Энциклопедический словарь

I ...л ог Конечная часть сложных имен существительных, вносящая значения: слово, речь (диалог, монолог и т.п.). II Конечная часть сложных имен существительных греческого происхождения, вносящая значение: специалист в области знаний, названной в… … Современный толковый словарь русского языка Ефремовой

Ложбина, юдоль, лощина, ложок, изложина, овраг, балка, яр Словарь русских синонимов. лог см. овраг Словарь синонимов русского языка. Практический справочник. М.: Русский язык. З. Е. Александрова. 2011 … Словарь синонимов

лог - лог, а, предл. п. в л оге и в лог у, мн. ч. а, ов; но (в названиях населенных пунктов) Лог, а, предл. п. в. Л оге, напр.: Сух ой Л ог (город), Вел икий Л ог, К аменный Л ог (поселки) … Русский орфографический словарь

ЛОГ, а, в логе и в логу, мн. а, ов, муж. Широкий и длинный овраг. | уменьш. ложок, жка, муж. | прил. логовой, ая, ое. Толковый словарь Ожегова. С.И. Ожегов, Н.Ю. Шведова. 1949 1992 … Толковый словарь Ожегова

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

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

-лог - logue <гр. Второй сложных существительных, обозначающих: а) лицо, занимающееся наукой, указанной в первой части сложения; напр.: биолог, геолог, физиолог. БАС 1.Гадатели, бродяги, утописты.. почти все маны, логи, исты. Бобор. Солидные доброде … Исторический словарь галлицизмов русского языка

Книги

  • Логіка , Василий Ряшко. От издателя:Навчальний посібник розроблений на основі програми вивчення логіки у Львівському державному університеті внутрішніх справ…
  • Логіка 3+ , Маргарита Головко. "Школа малюків"із наліпками - навчальна серія розроблена спеціально для дітей від трьох років. Система занять у кожній книзі ("Логіка","Математика","Розвиток мовлення")допоможе малюкові: …

Тема может и банальная, но когда программа начинает работать как то не так, и вообще вести себя очень странно, часто приходится читать логи. И много логов, особенно если нет возможности отлаживать программу и не получается воспроизвести ошибку. Наверно каждый выработал для себя какие то правила, что, как и когда логировать. Ниже я хочу рассмотреть несколько правил записи сообщений в лог, а также будет небольшое сравнение библиотек логирования для языков php, ruby и go. Сборщики логов и системы доставки не будут рассматриваться сознательно (их обсуждали уже много раз).

Есть такая linux утилита, а также по совместительству сетевой протокол под названием syslog. И есть целый набор RFC посвящённый syslog, один из них описывает уровни логирования https://en.wikipedia.org/wiki/Syslog#Severity_level (https://tools.ietf.org/html/rfc5424). Согласно rfc 5424 для syslog определено 8 уровней логирования, для которых также дается краткое описание. Данные уровни логирования были переняты многими популярными логерами для разных языков программирования. Например, http://www.php-fig.org/psr/psr-3/ определяет те же самые 8 уровней логирования, а стандартный Ruby logger использует немного сокращённый набор из 5 уровней. Несмотря на формальное указание в каких случаях должен быть использован тот или иной уровень логов, зачастую используется комбинация вроде debug/info/fatal - первый для логирования во время разработки и тестирования, второй и третий в расчёте на продакшен. Потом в какой то момент на продакшене начинает происходить что то не понятное и вдруг оказывается, что info логов не хватает - бежим включать debug. И если они не сильно нагружают систему, то зачастую так и остаются включенными в продакшен окружении. По факту остаётся два сценария, когда нужно иметь логи:

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

В языке Go в котором всё упрощено до предела, стандартный логер тоже прилично покромсали и оставили следующие варианты:

  • Fatal - вывод в лог и немедленный выход в ОС.
  • Panic - вывод в лог и возбуждение «паники» (аналог исключения)
  • Print - просто выводит сообщение в лог
Запутаться, что использовать в конкретной ситуации уже практически невозможно. Но сообщения в таком сильно усеченном виде сложно анализировать, а также настраивать системы оповещения, типично реагирующих на какой нибудь Alert\Fatal\Error в тексте лога.

Я часто при написании программы с нуля повсеместно использую debug уровень для логирования с расчётом, что на продакшене будет выставлен уровень логирования info и тем самым сократится зашумлённость сообщениями. Но в таком подходе часто возникают ситуация, что логов вдруг становится не хватать. Трудно угадать, какая информация понадобиться, что бы отловить редкий баг. Возможно рационально всегда использовать по умолчанию уровень info, а в обработчиках ошибок уровень error и выше. Но если у вас сотни и больше сообщений лога в секунду, то тогда наверно есть смысл тонкой настройки между info/debug. В таких ситуациях уже имеет смысл использовать специализированные решения что бы не просаживать производительность.

Есть ещё тонкий момент, когда вы пишите что то вроде logger.debug(entity.values) - то при выставленном уровне логирования выше debug содержимое entity.values не попадёт в лог, но оно каждый раз будет вычисляться отъедая ресурсы. В Ruby логеру можно передать вместо строки сообщения блок кода: Logger.debug { entity.values } . В таком случае вычисления будут происходить только при выставленном соответствующем уровне лога. В языке Go для реализации ленивого вычисления в логер можно передать объект поддерживающий интерфейс Stringer.

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

Типичный формат строки сообщения в логе можно условно разделить на следующие составные части:

+ +
Где:

  • system info: метка времени, ид процесса, ид потока и другая служебная информация
  • message: текст сообщения
  • context: любая дополнительная информация, контекст может быть общим для сообщений в рамках какой то операции.
Для того, чтобы связать пары запрос\ответ часто используется http заголовок X-Request-ID . Такой заголовок может сгенерировать клиент, или он может быть сгенерирован на стороне сервера. Добавив его в контекст каждой строчки лога появится возможность лёгким движением руки найти все сообщения возникшие в рамках выполнения конкретного запроса. А в случае распределенных систем, заголовок можно передавать дальше по цепочке сетевых вызовов.

Но с единым контекстом в рамках запроса возникает проблема с различными ORM, http клиентами или другими сервисами\библиотеками, которые живут своей жизнью. И ещё хорошо, если они предоставляют возможность переопределить свой стандартный логер хотя бы глобально, а вот выставить контекст для логера в рамках запроса зачастую не реально. Данная проблема в основном актуальна для многопоточной обработки, когда один процесс обслуживает множество запросов. Но например в фрэймворке Rails имеется очень тесная интеграция между всеми компонентами и запросы ActiveRecord могут писаться в лог вместе с глобальным контекстом для текущего сетевого запроса. А в языке Go некоторые библиотеки логирования позволяют динамически создавать новый объект логера с нужным контекстом, выглядит это примерно так:

ReqLog:= log.WithField("requestID", requestID)
После этого такой экземпляр логера можно передать как зависимость в другие объекты. Но отсутствие стандартизированного интерфейса логирования (например как psr-3 в php) провоцирует создателей библиотек хардкодить малосовместимые реализации логеров. Поэтому если вы пишите свою библиотеку на Go и в ней есть компонент логирования, не забудьте предусмотреть интерфейс для замены логера на пользовательский.

Резюмируя:

  • Логируйте с избытком. Никогда заранее не известно сколько и какой информации в логах понадобится в критический момент.
  • Восемь уровней логирования - вам действительно столько надо? По опыту должно хватить максимум 3-4, и то при условии, что для них настроены обработчики событий.
  • По возможности используйте ленивые вычисления для вывод сообщений в лог
  • Всегда добавляйте текущий контекст в каждое сообщение лога, как минимум requestID.
  • По возможности настраивайте сторонние библиотеки таким образом, чтобы они использовали логер с текущим контекстом запроса.

Лог-файл

Лог-файл

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

По-английски: Log file

См. также: Лог-файлы Файлы Веб-серверы

Финансовый словарь Финам .


Смотреть что такое "Лог-файл" в других словарях:

    Файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: дату и время визита пользователя; IP адрес компьютера пользователя; наименование браузера пользователя; URL запрошенной пользователем страницы; реферер … Словарь бизнес-терминов

    Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью в соответствии с правилами написания статей. Файл регистрации, протокол … Википедия

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

    файл - у, ч. 1) спец. Сукупність взаємопов язаних блоків інформації, яка розпізнається комп ютером як одне ціле. || Набір даних на логічному рівні розглядання. Контро/льний файл файл, створений виконуваними операторами для забезпечення контролю за… … Український тлумачний словник

    лог - 1) овраг с пологими травянистыми склонами и плоским дном; 2) комп.жарг. создаваемый комп. программой файл отчёта, содержащий сведения о выполненных операциях … Универсальный дополнительный практический толковый словарь И. Мостицкого

    На иллюстрации Джона Чарльза Доллмана … Википедия

    Radminer сетевой червь, занимающийся самораспространением посредством протокола крэкерами, освоившими протокол RAdmin и решившими применить знания на практике, для создания сообственного децентрализованного ботнета. В качестве примера будет… … Википедия

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

    Кейлогер, кейлоггер (англ. keylogger, правильно читается «ки логгер» от англ. key клавиша и logger регистрирующее устройство) это программное обеспечение или аппаратное устройство, регистрирующее различные… … Википедия



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows