Как проверить log txt на ошибки

Что такое сообщения об ошибках log.txt?

Общие ошибки выполнения log.txt

Ошибки файла log.txt часто возникают на этапе запуска OpenOffice.org Portable, но также могут возникать во время работы программы.
Эти типы ошибок TXT также известны как «ошибки выполнения», поскольку они возникают во время выполнения OpenOffice.org Portable. К числу наиболее распространенных ошибок выполнения log.txt относятся:

  • Не удается найти log.txt.
  • log.txt — ошибка.
  • Не удалось загрузить log.txt.
  • Ошибка при загрузке log.txt.
  • Не удалось зарегистрировать log.txt / Не удается зарегистрировать log.txt.
  • Ошибка выполнения — log.txt.
  • Файл log.txt отсутствует или поврежден.

Библиотека времени выполнения Microsoft Visual C++

Ошибка выполнения!

Программа: C:OpenOfficePortableDatasettingsuseruno_packagescachelog.txt

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

В большинстве случаев причинами ошибок в TXT являются отсутствующие или поврежденные файлы. Файл log.txt может отсутствовать из-за случайного удаления, быть удаленным другой программой как общий файл (общий с OpenOffice.org Portable) или быть удаленным в результате заражения вредоносным программным обеспечением. Кроме того, повреждение файла log.txt может быть вызвано отключением питания при загрузке OpenOffice.org Portable, сбоем системы при загрузке или сохранении log.txt, наличием плохих секторов на запоминающем устройстве (обычно это основной жесткий диск) или заражением вредоносным программным обеспечением. Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.

Как исправить ошибки log.txt — 3-шаговое руководство (время выполнения: ~5-15 мин.)

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

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

Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Восстановление системы» и нажмите ENTER.
  3. В результатах поиска найдите и нажмите «Восстановление системы»
  4. Введите пароль администратора (при необходимости).
  5. Следуйте инструкциям мастера восстановления системы, чтобы выбрать соответствующую точку восстановления.
  6. Восстановите компьютер к этому образу резервной копии.

Если на этапе 1 не удается устранить ошибку log.txt, перейдите к шагу 2 ниже.

Шаг 2. Если вы недавно установили приложение OpenOffice.org Portable (или схожее программное обеспечение), удалите его, затем попробуйте переустановить OpenOffice.org Portable.

Чтобы удалить программное обеспечение OpenOffice.org Portable, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Удалить» и нажмите ENTER.
  3. В результатах поиска найдите и нажмите «Установка и удаление программ»
  4. Найдите запись для OpenOffice.org Portable 3.2 и нажмите «Удалить»
  5. Следуйте указаниям по удалению.

После полного удаления приложения следует перезагрузить ПК и заново установить OpenOffice.org Portable.

Если на этапе 2 также не удается устранить ошибку log.txt, перейдите к шагу 3 ниже.

OpenOffice.org Portable 3.2

PortableApps

Шаг 3. Выполните обновление Windows.

Когда первые два шага не устранили проблему, целесообразно запустить Центр обновления Windows. Во многих случаях возникновение сообщений об ошибках log.txt может быть вызвано устаревшей операционной системой Windows. Чтобы запустить Центр обновления Windows, выполните следующие простые шаги:

  1. Нажмите кнопку «Пуск» в Windows
  2. В поле поиска введите «Обновить» и нажмите ENTER.
  3. В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
  4. Если обновления доступны для загрузки, нажмите «Установить обновления».
  5. После завершения обновления следует перезагрузить ПК.

Если Центр обновления Windows не смог устранить сообщение об ошибке log.txt, перейдите к следующему шагу. Обратите внимание, что этот последний шаг рекомендуется только для продвинутых пользователей ПК.

Если эти шаги не принесут результата: скачайте и замените файл log.txt (внимание: для опытных пользователей)

Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла log.txt. Мы храним полную базу данных файлов log.txt со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии OpenOffice.org Portable . Чтобы загрузить и правильно заменить файл, выполните следующие действия:

  1. Найдите версию операционной системы Windows в нижеприведенном списке «Загрузить файлы log.txt».
  2. Нажмите соответствующую кнопку «Скачать», чтобы скачать версию файла Windows.
  3. Скопируйте этот файл в соответствующее расположение папки OpenOffice.org Portable:

    Windows 10: C:ProgramDatainFlow InventoryLogs
    Windows 10: C:ProgramDataNapsterbin
    Windows 10: C:Program Files (x86)ZapakCrazyKart
    Windows 10: C:UsersTesterAppDataLocalVirtualStoreProgram Files (x86)UbisoftCrytekFar Cry Demo 2
    Windows 10: C:OpenOfficePortableDatasettingsuseruno_packagescache

    Показать на 6 каталогов больше +

    Windows 10: C:Program FilesMiniTool Partition Wizard 11
    Windows 10: C:Program FilesVDownloader
    Windows 10: C:UsersTesterAppDataRoamingMiniLyrics
    Windows 10: C:Program FilesMiniToolPowerDataRecovery
    Windows 10: C:UsersTesterAppDataRoamingn-Track Studio 7
    Windows 10: C:UsersTesterAppDataRoamingDAZ 3DStudio4

  4. Перезагрузите компьютер.

Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.

СОВЕТ ОТ СПЕЦИАЛИСТА: Мы должны подчеркнуть, что переустановка Windows является достаточно длительной и сложной задачей для решения проблем, связанных с log.txt. Во избежание потери данных следует убедиться, что перед началом процесса вы создали резервные копии всех важных документов, изображений, установщиков программного обеспечения и других персональных данных. Если вы в настоящее время не создаете резервных копий своих данных, вам необходимо сделать это немедленно.

Скачать файлы log.txt (проверено на наличие вредоносного ПО — отсутствие 100 %)

ВНИМАНИЕ! Мы настоятельно не рекомендуем загружать и копировать log.txt в соответствующий системный каталог Windows. PortableApps, как правило, не выпускает файлы OpenOffice.org Portable TXT для загрузки, поскольку они входят в состав установщика программного обеспечения. Задача установщика заключается в том, чтобы обеспечить выполнение всех надлежащих проверок перед установкой и размещением log.txt и всех других файлов TXT для OpenOffice.org Portable. Неправильно установленный файл TXT может нарушить стабильность работы системы и привести к тому, что программа или операционная система полностью перестанут работать. Действовать с осторожностью.

Файлы, относящиеся к log.txt

Файлы TXT, относящиеся к log.txt

Имя файла Описание Программа (версия) Размер файла (байты) Расположение файла
affDescription.txt Plain Text OpenOffice.org Portable 3.2 5221 C:OpenOfficePortableAppopenofficeshareuno_…
LICENSE.txt Plain Text OpenOffice.org Portable 3.2 18322 C:OpenOfficePortableOtherSource
test_doctest3.txt Plain Text OpenOffice.org Portable 3.2 81 C:OpenOfficePortableAppopenofficeBasisprog…
test_doctest4.txt Plain Text OpenOffice.org Portable 3.2 314 C:OpenOfficePortableAppopenofficeBasisprog…
Grammar.txt Plain Text OpenOffice.org Portable 3.2 6331 C:OpenOfficePortableAppopenofficeBasisprog…

Другие файлы, связанные с log.txt

Имя файла Описание Программа (версия) Размер файла (байты) Расположение файла
CBS.log Log OpenOffice.org Portable 3.2 977868 C:WindowsLogsCBS
setuperr.log Log OpenOffice.org Portable 3.2 10628 C:WindowsLogsDPX
setupact.log Log OpenOffice.org Portable 3.2 194961 C:WindowsLogsDPX
WmiApRpl.h C/C++/Objective-C Header OpenOffice.org Portable 3.2 3444 C:WindowsSystem32wbemPerformance
api-ms-win-core-profil… ApiSet Stub DLL Microsoft® Windows® Operating System (10.0.17134.12) 10600 C:UsersTesterAppDataLocalMicrosoftOneDriv…

Вы скачиваете пробное программное обеспечение. Для разблокировки всех функций программного обеспечения требуется покупка годичной подписки, стоимость которой оставляет 39,95 долл. США. Подписка автоматически возобновляется в конце срока (Подробнее). Нажимая кнопку «Начать загрузку» и устанавливая «Программное обеспечение», я подтверждаю, что я прочитал (-а) и принимаю Лицензионное соглашение и Политику конфиденциальности компании Solvusoft.

Пора поговорить про удобную работу с логами, тем более что в Windows есть масса неочевидных инструментов для этого. Например, Log Parser, который порой просто незаменим.

В статье не будет про серьезные вещи вроде Splunk и ELK (Elasticsearch + Logstash + Kibana). Сфокусируемся на простом и бесплатном.

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

findstr "Fail" *.log >> fail.txt

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

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Get-Content -Path 'C:Program FilesUpdate ServicesLogFilesSoftwareDistribution.log' | Out-Host -Paging

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:

>Get-Content -Path "C:WindowsWindowsUpdate.log" -Tail 5 -Wait


Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:

Select-String -Path "C:WindowsSystem32LogFilesFirewallpfirewall.log" -Pattern 'Drop' | Select-Object -Last 20 | Format-Table Line


Смотрим, кто пытается пролезть на наш дедик.

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

Select-String 'C:WindowsClusterReportsCluster.log' -Pattern ' err ' ‑Context 3

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Get-Content 'C:Windowsdebugnetlogon.log' | Select-Object -First 30 -Skip 45

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб. Для работы с любыми журналами, включая классические, существует более универсальный вариант ― Get-WinEvent. Остановимся на нем подробнее.

Для получения списка доступных системных журналов можно выполнить следующую команду:

Get-WinEvent -ListLog *


Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:

Get-WinEvent -LogName 'System' -MaxEvents 20


Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

Get-WinEvent -FilterHashTable @{LogName='System';ID='1','6013'}

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

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

Get-WinEvent -FilterHashtable @{LogName='system'} | Where-Object -FilterScript {($_.Level -eq 2) -or ($_.Level -eq 3)}


Ошибки и предупреждения журнала System.

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

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

  • Get-EventLog.
  • Get-WinEvent.

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Работаем с журналами посредством запросов SQL

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов. Загрузить утилиту можно в Центре Загрузок Microsoft, графический интерфейс к ней ― в галерее Technet. О графическом интерфейсе чуть позже, начнем с самой утилиты.

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

SELECT 
 extract_token(text, 0, ' ') as date, 
 extract_token(text, 1, ' ') as time,
 extract_token(text, 2, ' ') as action, 
 extract_token(text, 4, ' ') as src-ip,  
 extract_token(text, 7, ' ') as port 
FROM 'C:WindowsSystem32LogFilesFirewallpfirewall.log' 
WHERE action='DROP' AND port='3389'
ORDER BY date,time DESC

Посмотрим на результат:


Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManagerOperational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%System32WinevtLogsMicrosoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%test.evtx.

Данные будем получать таким запросом:

SELECT
 timegenerated as Date, 
 extract_token(strings, 0, '|') as user,
 extract_token(strings, 2, '|') as sourceip 
FROM '%temp%test.evtx'
WHERE EventID = 21
ORDER BY Date DESC


Смотрим, кто и когда подключался к нашему серверу терминалов.

Особенно удобно использовать Log Parser для работы с большим количеством файлов журналов ― например, в IIS или Exchange. Благодаря возможностям SQL можно получать самую разную аналитическую информацию, вплоть до статистики версий IOS и Android, которые подключаются к вашему серверу.

В качестве примера посмотрим статистику количества писем по дням таким запросом:

SELECT
 TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_PREFIX(TO_STRING([#Fields: date-time]),0,'T'), 'yyyy-MM-dd')) AS Date,
 COUNT(*) AS [Daily Email Traffic] 
FROM 'C:Program FilesMicrosoftExchange ServerV15TransportRolesLogsMessageTracking*.LOG'
WHERE (event-id='RECEIVE') GROUP BY Date ORDER BY Date ASC

Если в системе установлены Office Web Components, загрузить которые можно в Центре загрузки Microsoft, то на выходе можно получить красивую диаграмму.


Выполняем запрос и открываем получившуюся картинку…


Любуемся результатом.

Следует отметить, что после установки Log Parser в системе регистрируется COM-компонент MSUtil.LogQuery. Он позволяет делать запросы к движку утилиты не только через вызов LogParser.exe, но и при помощи любого другого привычного языка. В качестве примера приведу простой скрипт PowerShell, который выведет 20 наиболее объемных файлов на диске С.

$LogQuery = New-Object -ComObject "MSUtil.LogQuery"
$InputFormat = New-Object -ComObject "MSUtil.LogQuery.FileSystemInputFormat"
$InputFormat.Recurse = -1
$OutputFormat = New-Object -ComObject "MSUtil.LogQuery.CSVOutputFormat"
$SQLQuery = "SELECT Top 20 Path, Size INTO '%temp%output.csv' FROM 'C:*.*' ORDER BY Size DESC"
$LogQuery.ExecuteBatch($SQLQuery, $InputFormat, $OutputFormat)
$CSV = Import-Csv  $env:TEMP'output.csv'
$CSV | fl 
Remove-Item $env:TEMP'output.csv'
$LogQuery=$null
$InputFormat=$null
$OutputFormat=$null

Ознакомиться с документацией о работе компонента можно в материале Log Parser COM API Overview на портале SystemManager.ru.

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


Интерфейс Log Parser Studio.

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

Вторая особенность ― возможность экспорта запроса в скрипт PowerShell.

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


Выборка наиболее активных ящиков.

При этом можно выбрать куда больше типов журналов. Например, в «чистом» Log Parser существуют ограничения по типам входных данных, и отдельного типа для Exchange нет ― нужно самостоятельно вводить описания полей и пропуск заголовков. В Log Parser Studio нужные форматы уже готовы к использованию.

Помимо Log Parser, с логами можно работать и при помощи возможностей MS Excel, которые упоминались в материале «Excel вместо PowerShell». Но максимального удобства можно достичь, подготавливая первичный материал при помощи Log Parser с последующей обработкой его через Power Query в Excel.

Приходилось ли вам использовать какие-либо инструменты для перелопачивания логов? Поделитесь в комментариях.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

1
branch

0
tags


Code

  • Use Git or checkout with SVN using the web URL.

  • Open with GitHub Desktop

  • Download ZIP

Latest commit

Files

Permalink

Failed to load latest commit information.

Type

Name

Latest commit message

Commit time

check_replication.jar
Проверяет лог-файлы репликатора Инфоклиники в соответствии с файлом настроек log_checker.ini.
Проверка осуществляется по следующим пунктам:
1) присутствие файла настроек log_checker.ini в рабочей директории
2) соответствие настроек заданному шаблону и наличию данных в нем
3) существование папки с лог-файлами репликатора ===PathLog===
4) наличие указанных в настроках файлов ===FilesToCheck=== в директории с логами
5) проверяет время обновления файлов с логами в соответствии с маской ===MaskForFileToCheck=== и параметром timeForCheckingLines
6) проверяет записи в логах, время которых меньше чем timeForCheckingLines на наличие ошибок из списка ===ErrorCodes===
7) файлы, чье имя находится в списке ===FilesToIgnore=== игнорируются
8) проверяется файл stat.log на время обновления в соответствии с параметром statLogUpdateTime и количеством запущенных процессов с параметром statLogCount
9) в случае расхождении времени по часовым поясам можно сделать корректировку провери через параметр timeCorrection
10) в случае обнаружения каких-либо ошибок в работе репликатора либо в работе программы проверки лог-файлов будет выслано письмо на адреса указанные в списке ===EmailAddressesToNotify===
11) настройки почты берутся из раздела ===SmtpSettings===

Для корректной работы нужно установить Java SDK не ниже версии jdk1.8.0_25
Для запуска файла нужно выполнить команду "java -jar check_replication.jar"
В рабочей папке будет создан файл log.txt с информацией о совершаемых операциях

Для циклического запуска можно создать запланированную задачу в соответсвии с файлом run_replicator_checker.xml

В случае вопросов можно обращаться по адресу: nn-admin@nnkk.budzdorov.su

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

Почему нужно использовать лог-файлы?

Лог-файлы полезны для многих задач, включая:

  • Отслеживание ошибок и проблем в ПО;
  • Анализ производительности и оптимизации ПО;
  • Поиск причин сбоев и аварийных остановок приложений;
  • Отслеживание действий пользователей;
  • Проверка работы системы и ее настройки.

Как создать лог-файл?

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

Как использовать лог-файлы для отслеживания ошибок и проблем?

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

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

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

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

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

Как обезопасить информацию в лог-файлах?

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

  • Хранить лог-файлы в зашифрованном формате;
  • Обезличивать данные пользователей и удалять чувствительную информацию;
  • Устанавливать права доступа к лог-файлам, чтобы предотвратить несанкционированный доступ.

Выводы

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

1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

1

анализ лог файла

03.05.2012, 18:25. Показов 3425. Ответов 8


Студворк — интернет-сервис помощи студентам

Здравствуйте! Недавно решил посвящать свое свободное время веб программированию. Увлеченно учу html css javascript. Пару дней назад начал изучение php. Через некоторое время нужно сдавать лабораторную работу по обработке лог файла. Слышал что на php это решается легче всего. Буду рад, если кто-нибудь откликнется, от себя обязуюсь что не заброшу изучение сего языка.
Суть:
Написать программу по разбивке и анализу содержимого файла отчета работы ПО (log-файла).
Необходимо проанализаровать и подсчитать запросы, а также вывести их в алфавитном порядке с подсчетом количества повторений.
Программа должна выдавать отчет о своей работе в виде:

Дата Запросы
25.04.2002 — 12
26.04.2002 — 10
27.04.2002 — 5

Всего было сделано (запросов) — 1679

Сортировка запросов:

Бухгалтерский учет — 25
Бухгалтерский журнал — 30
Экономика Томска — 6
Экономика Якутии — 1

Пример файла отчета работы программы wslog.txt
Сортировку запросов необходимо проводить по CGI-переменным
S21STR=
S21ALL=

Вставил кусок лог файла, в оригинале он намного больше (400кб)



0



shafl

03.05.2012, 19:09

Не по теме:

приложите весь лог, прошу в личных целях :)



0



1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

03.05.2012, 19:51

 [ТС]

3

Цитата
Сообщение от shafl
Посмотреть сообщение

Не по теме:

приложите весь лог, прошу в личных целях :)

Сделано.



0



almostclever

1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

05.05.2012, 10:59

 [ТС]

4

Так, кое-что получилось сделать.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<html>
<head>
<title>lab work 2</title>
</head>
<body>
 
<?php
 
$read = fopen("log.txt", "r");
if ($read) 
{
while (!feof($read))
{
$mytext = fgets($read, 999);
$date = substr($mytext, 0, 10);
echo $date.'<br>';
$i++;
}
echo "Количество запросов:$i";
}
else echo "Ошибка при открытии файла";
fclose($read);
 
?>
 
</body>
</html>

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

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

25.02.2002 25.02.2002 25.02.2002 26.02.2002 26.02.2002 26.02.2002 26.02.2002 26.02.2002

25.02.2002 — 3
26.02.2002 — 5



0



258 / 147 / 37

Регистрация: 24.01.2011

Сообщений: 427

05.05.2012, 11:20

5

считывайте всё в массив построчно с помощью file() и работайте с массивом.



0



almostclever

1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

05.05.2012, 12:15

 [ТС]

6

Сделал так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
<head>
<title>lab work 2</title>
</head>
<body>
 
<?php
 
$read = fopen("log.txt", "r");
$write=fopen("date.txt","w");
if ($read) 
{
while (!feof($read))
{
$mytext = fgets($read, 2000);
$date = substr($mytext, 0, 10);
fwrite($write," $date");
$i++;
}
echo "Всего запросов:$i<br>";
}
else echo "Ошибка при открытии файла";
 
fclose($write);
fclose($read);
 
$write=fopen("date.txt","r");
 
while(!feof($write))
{
$datetext=fgets($write, 2000);
}
$dates= explode(" ",$datetext);
unset($dates[0]);
foreach($dates as $val)
$pos[$val] = @substr_count($datetext, $val);
foreach($pos as $key => $cal)
echo "$key - запросов: $cal<br>";
 
fclose($write);
 
?>
 
</body>
</html>

Все работает.

Добавлено через 4 минуты
Теперь самое трудное-сортировка запросов. Можно ли использовать функцию parse_str? Я посмотрел, вроде подходит, так как у нас перед названием стоит &002S21STR.



0



258 / 147 / 37

Регистрация: 24.01.2011

Сообщений: 427

05.05.2012, 12:28

7

я бы рекомендовал регулярными выражениями парсить



0



almostclever

1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

05.05.2012, 14:37

 [ТС]

8

1 проблема: выдает ошибку Undefined variable: kind в 47 строке, появилась внезапно, после перезагрузки сервера (wampserver), до этого не было.

2 проблема: косячит с подсчетом Бухгалтерского учета (пишет больше чем есть на самом деле)

3 проблема: почемуто не удаляет первый символ при сортировке с помощью unset , хотя с датами все нормально удалялось.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<html>
<head>
<title>lab work 2</title>
</head>
<body>
 
<?php
$i=0;
$read = fopen("log.txt", "r"); //изначальный лог-файл
$write=fopen("date.txt","w"); //файл с датами
$rewrite=fopen("log2.txt","w"); //лог-файл с измененными &002S21STR и &S21ALL на &kind
if ($read) 
{
while (!feof($read))
{
$mytext = fgets($read, 2000);
$mytext=str_replace("&002S21STR","&kind",$mytext); //заменяем &002S21STR на &kind
$mytext=str_replace("&S21ALL","&kind",$mytext);//заменяем &S21ALL на &kind
fwrite($rewrite,"$mytext"); //записываем в log2.txt измененный лог-файл
$date = substr($mytext, 0, 10); //отсеиваем даты
fwrite($write," $date"); //записываем даты в date.txt
$i++;
}
echo "Всего запросов:$i<br>";
}
else echo "Ошибка при открытии файла";
fclose($write);
fclose($read);
fclose($rewrite);
 
$write=fopen("date.txt","r");
$datetext=fgets($write, 2000); //копируем содержимое date.txt в строку
$dates= explode(" ",$datetext); //разбиваем на части массива по пробелу
unset($dates[0]); //удаляем первый пробел
foreach($dates as $val)
$pos[$val] = @substr_count($datetext, $val);
foreach($pos as $key => $cal)
echo "$key - запросов: $cal<br>";
fclose($write);
 
$rewrite=fopen("log2.txt","r");
$sort=fopen("sort.txt","w");
while (!feof($rewrite))
{
$mytext2 = fgets($rewrite, 2000); //читаем строку
parse_str($mytext2);
fwrite($sort,"/$kind"); //записываем все что после &kind= в файл sort.txt
}
fclose($rewrite);
fclose($sort);
 
$sort=fopen("sort.txt","r");
$kindtext=fgets($sort,2000); //копируем содержимое sort.txt в строку
$kinds= explode("/",$kindtext); //разбиваем на части массива по занку слэша
unset($kinds[0]); //удаляем первый слэш
foreach($kinds as $val)
$pos2[$val] = @substr_count($kindtext, $val);
foreach($pos2 as $key => $cal2)
echo "$key - запросов: $cal2<br>";
fclose($sort);
 
?>
 
</body>
</html>

Содержимое лог-файла:

MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
25.02.2002^22:58.27^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^C21COM=Enter&I21DBN=MILS_FREE
25.02.2002^22:58.34^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21CNR=20&S21FMT=briefw&T21VAL=002&002S21P02=1&002S21P03=K=&002S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&002S21P04=&002S21L0G=0&002S21P01=3&033S21P02=1&033S21P03=A=&033S21P05=Автор&033S21P06=1&033S21STR=&006S21P01=2&006S21P03=V=&006S21P05=Вид документа&006S21STR=&004S21P01=1&004S21P03=B=&004S21P05=ISSN/ISBN&004S21STR=&005S21P03=G=&005S21P05=Год издания&005S21STR=&C21COM=Поиск
25.02.2002^22:59.14^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21CNR=20&S21FMT=briefw&T21VAL=002&002S21P02=1&002S21P03=K=&002S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&002S21P04=&002S21L0G=0&002S21P01=3&033S21P02=1&033S21P03=A=&033S21P05=Автор&033S21P06=1&033S21STR=&006S21P01=2&006S21P03=V=&006S21P05=Вид документа&006S21STR=&004S21P01=1&004S21P03=B=&004S21P05=ISSN/ISBN&004S21STR=&005S21P03=G=&005S21P05=Год издания&005S21STR=&C21COM=Поиск
25.02.2002^22:59.17^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^I21DBN=MILS_FREE&C21COM=Show&N21STN=1&N21FMT=fullw_&001N21NUM=40
25.02.2002^22:59.24^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^I21DBN=MILS_FREE&C21COM=Show&N21STN=1&N21FMT=fullw_&001N21NUM=40
25.02.2002^23:00.08^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&002S21P04=&002S21P01=3&006S21P01=2&002S21L0G=1&006S21P03=V=&006S21P05=Вид документа&002S21P02=1&002S21P03=K=&002S21P05=Ключевые слова&002S21STR=Бухгалтерский учет&C21COM=Поиск
25.02.2002^23:00.24^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=21&C21COM=Далее
25.02.2002^23:01.15^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=41&C21COM=Далее
25.02.2002^23:01.32^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=61&C21COM=Далее
26.02.2002^23:01.36^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=81&C21COM=Далее
26.02.2002^23:01.39^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=101&C21COM=Далее
26.02.2002^23:01.43^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=121&C21COM=Далее
27.02.2002^23:01.45^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=141&C21COM=Далее
27.02.2002^23:02.01^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=161&C21COM=Далее

Миниатюры

анализ лог файла
 



0



almostclever

1 / 1 / 1

Регистрация: 04.03.2012

Сообщений: 101

05.05.2012, 19:25

 [ТС]

9

Разобрался со всем, кроме:

когда за забросом идет пустой заброс, этот запрос почему-то считается предыдущим запросом. На примере:

MySQL
1
2
3
4
5
6
25.02.2002^22:58.34^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21CNR=20&S21FMT=briefw&T21VAL=002&002S21P02=1&002S21P03=K=&002S21P05=Ключевые слова&002S21STR=Бухгалтерскийучет&002S21P04=&002S21L0G=0&002S21P01=3&033S21P02=1&033S21P03=A=&033S21P05=Автор&033S21P06=1&033S21STR=&006S21P01=2&006S21P03=V=&006S21P05=Вид документа&006S21STR=&004S21P01=1&004S21P03=B=&004S21P05=ISSN/ISBN&004S21STR=&005S21P03=G=&005S21P05=Год издания&005S21STR=&C21COM=Поиск
25.02.2002^23:00.24^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=21&C21COM=Далее
25.02.2002^23:00.08^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&002S21P04=&002S21P01=3&006S21P01=2&002S21L0G=1&006S21P03=V=&006S21P05=Вид документа&002S21P02=1&002S21P03=K=&002S21P05=Ключевые слова&002S21STR=Бухгалтерскийучет&C21COM=Поиск
25.02.2002^23:01.32^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=61&C21COM=Далее
25.02.2002^22:58.27^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^C21COM=Enter&I21DBN=MILS_FREE
25.02.2002^23:01.15^Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)^&I21DBN=MILS_FREE&S21FMT=fullw&S21CNR=20&S21ALL=(K=бухгалтерск$)*(K=учет$)&S21UND=бухгалтерск|учет&S21STN=41&C21COM=Далее

первые 4 запроса обработаются как надо, а 5 посчитается за (K=бухгалтерск$)*(K=учет$). Не могу понять в чем дело.

Вот кусок кода, отвечающий за это:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
while (!feof($rewrite))
{
$mytext2=fgets($rewrite, 2000); //читаем строку
parse_str($mytext2);
if($kind)
{
fwrite($sort,"/$kind");
}//записываем все что после &kind= в файл sort.txt
else $s++;
 
}
echo "пустых запросов:$s<br>";



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

05.05.2012, 19:25

Помогаю со студенческими работами здесь

Анализ лог файлов
Добрый день.

Необходимо загнать информацию из лог файла в ListView. Но я пока полностью не…

Анализ лог файлов на C#
Добрый день.
Задание такое: необходимо написать программу, анализирующую лог файл сервера apache…

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

Ошибки лог-файла
Кто-нибудь знает что за ошибки в лог-файле?

1. File does not exist:…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

9

  • Как проверить linux mint на ошибки
  • Как проверить json на ошибки
  • Как проверить ios на наличие ошибок
  • Как проверить innosilicon на ошибки
  • Как проверить imac на наличие ошибок