Файл логов сайта позволит узнать что создает нагрузку, какие страницы или картинки на сайте «битые», кто «стучится» к вам на сайт и прочее. Давайте откроем его в Excel, что позволит анализировать более удобно.
Получим в итоге вот такой внешний вид:
Увеличить. Открытый файл логов сайта .log в Excel
Приступим.
Для начала переходим в меню Excel Данные
и нас интересует пункт Из текстового/CSV-файла
.
Увеличить. Excel > Данные > Из текстового/CSV-файла
В открывшемся окне выберите Все файлы
, чтобы отобразило ваш фай логов, т.к. он имеет нестандартное расширение .log
Увеличить. Выбираем тип «Все файлы»
Теперь проверяем кодировку и правильно ли выставлен разделитель. Посмотрите на скриншот ниже: у вас должно получиться аналогично. Если нет такого разделения по столбцам, то пробуйте экспериментировать с Разделителем
: в зависимости от хостинга и настроек формирования файла лога, в качестве разделителя могут быть запятые, точки и другие знаки.
Увеличить. Настройка отображения файла лога
В итоге получаем таблицу с каким-то набором колонок, что позволит нам проанализировать файл логов и найти решение своего вопроса.
Увеличить. Открытый файл логов сайта .log в Excel
Представьте себе книгу Excel с очень важными для вас данными, сохраненную на общем сетевом диске компании, куда имеет доступ куча народу. Одним совсем не прекрасным утром вы открываете этот файл и обнаруживаете, что внутри кто-то поиграл в аль-каиду: формулы поломаны, данные стерты, дизайн нарушен. Поскольку вы опытный пользователь, то у вас, конечно же, была резервная копия этого важного документа (была же, правда?) и данные вы восстановите, но чисто из спортивного интереса хотелось бы все же узнать — КТО ЭТО СДЕЛАЛ?!
Давайте попробуем решить эту задачу. Итак, нам нужно:
- фиксировать на отдельном (скрытом) листе имя пользователя, открывшего файл;
- фиксировать там же дату-время открытия и закрытия файла;
- по возможности усложнить взлом или обход такой защиты.
Поехали…
Этап 1. Создаем «Лог»
Добавим в нашу книгу новый лист, куда будет записываться информация о всех пользователях и назовем его, например, Лог. На нем создадим простую шапку будущего журнала учета посетителей:
Этап 2. Макросы фиксации входа-выхода
Теперь добавим макросы для записи на лист Лог даты-времени и имен пользователей при открытии и закрытии книги. Для этого нужно открыть редактор Visual Basic с помощью сочетания Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) и найти в левом верхнем углу панель Project (если она не отображается, то включить ее можно сочетанием клавиш Ctrl+R):
Двойным щелчком откройте модуль ЭтаКнига (ThisWorkbook) и вставьте туда пару наших макросов для обработки событий открытия и закрытия книги:
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'ищем последнюю занятую строчку в логах lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 'заносим дату-время выхода из файла If lastrow>1 Then Worksheets("Лог").Cells(lastrow, 3) = Now 'сохраняемся перед выходом ActiveWorkbook.Save End Sub Private Sub Workbook_Open() 'ищем последнюю занятую строчку в логах lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 'заносим имя пользователя и дату-время входа в файл Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME") Worksheets("Лог").Cells(lastrow + 1, 2) = Now End Sub
В первом приближении все уже должно работать. Попробуйте открыть-закрыть этот файл пару раз и убедитесь, что на лист Лог попадает ваше имя пользователя (логин входа в Windows) и дата-время:
Этап 3. Улучшаем надежность
Можно было бы скрыть лист Лог и на этом остановиться, но есть одно «но»: если у пользователя, который открывает нашу книгу, макросы разрешены по умолчанию либо он сам их разрешает, нажав в окне предупреждения на кнопку Включить содержимое, то все в порядке:
Но что если пользователь не разрешит выполнение макросов или они отключены у него по умолчанию? Тогда наши макросы отслеживания выполняться не будут и фиксации имени и даты не произойдет Как же заставить пользователя разрешить использование макросов?
Чтобы обойти эту проблемку воспользуемся небольшой тактической хитростью. Добавьте в нашу книгу еще один чистый лист, назовите его Предупреждение и вставьте на него следующий текст:
Суть в том, чтобы по умолчанию скрыть в книге все листы кроме этого, а рабочие листы с данными отображать с помощью специального макроса. Если пользователь не разрешил выполнение макросов, то он увидит в книге только один лист с предупреждением. Если же макросы разрешены, то наш макрос обработки события открытия книги скроет лист с предупреждением и отобразит листы с данными. Чтобы пользователь сам не отобразил их — используем суперскрытие вместо обычного скрытия листов (параметр xlSheetVeryHidden вместо обычного False).
Чтобы реализовать все описанное, слегка изменим наши процедуры в модуле ЭтаКнига (ThisWorkbook):
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'ищем последнюю занятую строчку в логах lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 'заносим дату-время выхода из файла If lastrow > 1 Then Worksheets("Лог").Cells(lastrow, 3) = Now 'скрываем все листы, кроме листа ПРЕДУПРЕЖДЕНИЕ Worksheets("Предупреждение").Visible = True For Each sh In ActiveWorkbook.Worksheets If sh.Name = "Предупреждение" Then sh.Visible = True Else sh.Visible = xlSheetVeryHidden End If Next sh 'сохраняемся перед выходом ActiveWorkbook.Save End Sub Private Sub Workbook_Open() 'ищем последнюю занятую строчку в логах lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row 'заносим имя пользователя и дату-время входа в файл Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME") Worksheets("Лог").Cells(lastrow + 1, 2) = Now 'отображаем все листы For Each sh In ActiveWorkbook.Worksheets sh.Visible = True Next sh 'скрываем листы ПРЕДУПРЕЖДЕНИЕ и ЛОГ Worksheets("Предупреждение").Visible = xlSheetVeryHidden Worksheets("Лог").Visible = xlSheetVeryHidden End Sub
Чтобы просмотреть скрытый Лог откройте редактор VisualBasic (Alt+F11), выделите лист на панели Project и измените его видимость на панели Properties, используя свойство Visible:
Если пользователи настолько продвинутые, что знают про суперскрытые листы и могут их отобразить через редактор Visual Basic или нарушить работу наших макросов, то можно дополнительно поставить пароль на просмотр и изменение макросов. Для этого щелкните правой кнопкой мыши по имени файла в панели Project (строка VBAProject (blackbox.xls)), выберите команду VBA Project Properties и включите флажок Lock project for viewing и задайте пароль на вкладке Protection:
Теперь точно никто не уйдет безнаказанным. Большой Брат следит за тобой!
Ссылки по теме
- Суперскрытый лист
- Выборочное отображение листов отдельным пользователям
- 4 способа защиты данных в Microsoft Excel
Из лог файла в таблицу. |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Содержание
- Использование оператора LOG
- Способ 1: применение функции LOG
- Способ 2: применение функции LOG10
- Вопросы и ответы
Одним из востребованных математических действий при решении учебных и практических задач является нахождение логарифма из заданного числа по основанию. В Экселе для выполнения данной задачи существует специальная функция, которая называется LOG. Давайте поподробнее узнаем, как её можно применять на практике.
Использование оператора LOG
Оператор LOG относится к категории математических функций. Его задачей является вычисление логарифма указанного числа по заданному основанию. Синтаксис у указанного оператора предельно простой:
=LOG(число;[основание])
Как видим, функция располагает всего двумя аргументами.
Аргумент «Число» представляет собой число, из которого нужно вычислить логарифм. Он может принимать вид числового значения и являться ссылкой на ячейку, его содержащую.
Аргумент «Основание» представляет собой основание, по которому будет вычисляться логарифм. Он тоже может иметь, как числовой вид, так и выступать в виде ссылки на ячейку. Данный аргумент не является обязательным. Если он опущен, то считается, что основание равно нулю.
Кроме того, в Экселе существует ещё одна функция, позволяющая вычислять логарифмы – LOG10. Её главное отличие от предыдущей в том, что она может вычислять логарифмы исключительно по основанию 10, то есть, только десятичные логарифмы. Её синтаксис ещё проще, чем у ранее представленного оператора:
=LOG10(число)
Как видим, единственным аргументом данной функции является «Число», то есть, числовое значение или ссылка на ячейку, в которой оно расположено. В отличие от оператора LOG у этой функции аргумент «Основание» вообще отсутствует, так как принимается, что основание обрабатываемых ею значений равно 10.
Способ 1: применение функции LOG
Теперь давайте рассмотрим применение оператора LOG на конкретном примере. Имеем столбец числовых значений. Нам нужно вычислить из них логарифм по основанию 5.
- Выполняем выделение первой пустой ячейки на листе в колонке, в которую планируем выводить итоговый результат. Далее щелкаем по пиктограмме «Вставить функцию», которая располагается возле строки формул.
- Происходит запуск окошка Мастера функций. Перемещаемся в категорию «Математические». Производим выделение наименования «LOG» в списке операторов, после чего производим щелчок по кнопке «OK».
- Происходит запуск окошка аргументов функции LOG. Как видим, оно имеет два поля, которые соответствуют аргументам данного оператора.
В поле «Число» в нашем случае следует ввести адрес первой ячейки того столбца, в котором находятся исходные данные. Это можно сделать, вписав его в поле вручную. Но существует и более удобный способ. Устанавливаем курсор в указанном поле, а затем щелкаем левой кнопкой мыши по ячейке таблицы, содержащей нужное нам числовое значение. Координаты данной ячейки тут же отобразятся в поле «Число».
В поле «Основание» просто вписываем значение «5», так как оно будет одинаково для всего обрабатываемого числового ряда.
После произведения указанных манипуляций щелкаем по кнопке «OK».
- Результат обработки функцией LOG тут же выводится в ячейку, указанную нами на первом шаге этой инструкции.
- Но мы заполнили только первую ячейку столбца. Для того, чтобы заполнить и остальные, нужно скопировать формулу. Устанавливаем курсор в нижний правый угол ячейки её содержащей. Появляется маркер заполнения, представ в виде крестика. Выполняем зажим левой кнопки мыши и перетягиваем крестик до конца столбца.
- Вышеуказанная процедура привела к тому, что все ячейки столбца «Логарифм» заполнены результатом вычисления. Дело в том, что ссылка, указанная в поле «Число», является относительной. При перемещении по ячейкам изменяется и она.
Урок: Мастер функций в Экселе
Способ 2: применение функции LOG10
Теперь давайте рассмотрим пример использования оператора LOG10. Для примера возьмем таблицу с теми же исходными данными. Но теперь, понятное дело, предстоит задача вычислить логарифм чисел, расположенных в столбце «Исходные данные» по основанию 10 (десятичный логарифм).
- Производим выделение первой пустой ячейки столбца «Логарифм» и щелкаем по пиктограмме «Вставить функцию».
- В открывшемся окне Мастера функций опять выполняем переход в категорию «Математические», но на этот раз останавливаемся на наименовании «LOG10». Щелкаем внизу окошка по кнопке «OK».
- Происходит активация окна аргументов функции LOG10. Как видим, оно располагает только одним полем – «Число». Вносим в него адрес первой ячейки столбца «Исходные данные», тем же способом, который мы использовали в предыдущем примере. Затем щелкаем по кнопке «OK» внизу окна.
- Результат обработки данных, а именно десятичный логарифм заданного числа, выводится в предварительно указанную ячейку.
- Для того, чтобы произвести вычисления и для всех остальных чисел представленных в таблице, производим копирование формулы посредством маркера заполнения, таким же способом, что и в предыдущий раз. Как видим, результаты расчетов логарифмов чисел выведены в ячейки, а значит, поставленная задача выполнена.
Урок: Другие математические функции в Экселе
Применение функции LOG позволяет в Экселе просто и быстро посчитать логарифм от указанного числа по заданному основанию. Этот же оператор может посчитать и десятичный логарифм, но для указанных целей более рационально использовать функцию LOG10.
Еще статьи по данной теме:
Помогла ли Вам статья?
Прошу сразу прощения за раздвоение постов.
Изначально планировал сделать скриншотами, в один пост они все бы не влезли, по этому решил разделить их на две части.
После публикации предыдущей части, понял что скринами делать вторую часть как-то геморно, и решил запилить видюху.
Знал бы сразу что в итоге будет видюха — объединил бы в один пост, на а так придется двумя.
В общем всем тем кто с Excel общается на «эй ты урод иди сюда» данный пост будет не интересен — можете смело закрывать, а вот тем кто с Excel общается на «твою жеш мать, и куда здесь чего жать?» пост будет полезен.
Собственно в прошлом посте мы получили файл формата CSV, который не мешало бы открыть и посмотреть что там и как.
Погнали: