Войти
Все секреты компьютера для новичка и профессионала
  • Автомобильный усилитель – экономные варианты создания звука в салоне Как собрать схему усилителя звука
  • Высококачественный усилитель без ООС: The End Millennium Двухкаскадный усилитель на транзисторах
  • Стримы World Of Tanks Aces gg l первое танковое
  • Лучшие средние танки в World of Tanks
  • Электроника шаг за шагом скачать fb2
  • Делается седло в майнкрафте 1
  • Логирование. NLog Platform. Зачем нужны логи в приложении. Что такое лог: коротко о главном Как открыть файл log

    Логирование. NLog Platform. Зачем нужны логи в приложении. Что такое лог: коротко о главном Как открыть файл log

    Лог-файлы (logs или логи) - это текстовый файл, в котором ведется запись абсолютно всех событий, которые происходили на сервере (на котором расположен Ваш сайт). Запись событий ведется так - каждому событию соответствует определенная строчка, с указанием времени события и прочих сведений. Обычно все логи сортируются по датам - одним суткам соответствует один файл.

    Как их посмотреть?

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

    Зачем нужны логи?

    Все лог-файлы можно разделить на три группы:

    1. логи доступа (access_log) записывают информацию о посетителях сайта (IP-адрес, время запроса, страница которую он запросил)
    2. логи ошибок (error_log) сохраняют все ошибки, которые происходили на сайте, и показывают файлы в которых они случились
    3. логи FTP-авторизаций собирают данные о попытках входа по FTP-соединению

    Как их использовать?

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

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

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

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

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

    Лог (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, также рассмотрели ее возможности и как можно настроить генерацию логов на этой платформе.

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

    Чем открыть файл в формате LOG

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

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

    Скачать программу для формата LOG

    Отчет о сканировании на наличие вирусов, создаваемый в антивирусной программе AntiVir для Windows. Хранится в простом текстовом формате и содержит системный журнал сканирования антивируса или обновления программы. Применяется для хранения истории работы антивируса.

    Файлы AntiVir LOG можно просматривать на панели Overview → Reports, которая отображает список отчетов. Откройте на этой панели отчет и нажмите на клавишу Report, чтобы открыть файл.

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

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

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

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

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

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

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

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

    Что это?

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

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

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

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

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

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

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

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

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