Логи как писать – ❶ Как писать логи 🚩 как писать логи в wow 🚩 Компьютеры и ПО 🚩 Другое

Как правильно писать логи (?)

Тема может и банальная, но когда программа начинает работать как то не так, и вообще вести себя очень странно, часто приходится читать логи. И много логов, особенно если нет возможности отлаживать программу и не получается воспроизвести ошибку. Наверно каждый выработал для себя какие то правила, что, как и когда логировать. Ниже я хочу рассмотреть несколько правил записи сообщений в лог, а также будет небольшое сравнение библиотек логирования для языков 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 — просто выводит сообщение в лог

Запутаться, что использовать в конкретной ситуации уже практически невозможно. Но сообщения в таком сильно усеченном виде сложно анализировать, а также настраивать системы оповещения, типично реагирующих на какой нибудь AlertFatalError в тексте лога.
Я часто при написании программы с нуля повсеместно использую debug уровень для логирования с расчётом, что на продакшене будет выставлен уровень логирования info и тем самым сократится зашумлённость сообщениями. Но в таком подходе часто возникают ситуация, что логов вдруг становится не хватать. Трудно угадать, какая информация понадобиться, что бы отловить редкий баг. Возможно рационально всегда использовать по умолчанию уровень info, а в обработчиках ошибок уровень error и выше. Но если у вас сотни и больше сообщений лога в секунду, то тогда наверно есть смысл тонкой настройки между info/debug. В таких ситуациях уже имеет смысл использовать специализированные решения что бы не просаживать производительность.
Есть ещё тонкий момент, когда вы пишите что то вроде logger.debug(entity.values) — то при выставленном уровне логирования выше debug содержимое entity.values не попадёт в лог, но оно каждый раз будет вычисляться отъедая ресурсы. В Ruby логеру можно передать вместо строки сообщения блок кода:

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

[system info] + [message] + [context]

Где:

  • 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.
  • По возможности настраивайте сторонние библиотеки таким образом, чтобы они использовали логер с текущим контекстом запроса.

Автор: ZurgInq

Источник

Гайд по Worldoflogs

Worldoflogs.com – мощнейший инструмент анализа. Тогда как аддоны вроде Recount позволяют выявлять слакеров «на лету», отправляя на замену тех, кто выдает слишком мало урона, лечит слишком неэффективно или ловит неприятные способности боссов в ответственный момент, отчеты Worldoflogs помогают понять сами причины проблем.

  • Быть может не хватает урона или лечения у всего рейда?
  • Быть может рейд получает слишком много совокупного урона и мана у целителей просто кончается?
  • Быть может этого босса вообще пока нельзя убить из-за бага?

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

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

Recount позволяет изучать структуру урона только своего рейда, тогда как в логах доступны структуры урона и лечения топовых игроков со всего мира. Например, можно посмотреть какой максимальный урон может выдать маг на Халфии.

А потом изучить структуру урона этого мага, чтобы понять, почему в вашем рейде маги отстают даже от танка =).

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

Как записывать логи в Worldoflogs?

Однако чтобы было что сравнивать, нужно сперва записать логи в базу данных. Это делается очень просто. Сперва необходимо создать аккаунт, подтвердить его по электронной почте и создать гильдию. К созданию гильдии, на мой субъективный взгляд, можно подойти без особой серьезности: гильдия в Worldoflogs – это просто способ структурировать информацию. У меня он спокойно принял гильдию с названием 12.

Затем необходимо скачать клиент: специальный Java-скрипт. Если вы не знаете, как запустить его – перетащите скачанный файлик в окно браузера (на Mozilla работает отлично).

Вам предложат ввести данные вашего аккаунта + путь к папке с логами World of Warcraft.

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

Когда запись закончена, лог можно выгружать.

Для этого в окне клиента Worldoflogs нажмите «Open a file», выберите файл со своим логом.

А затем нажмите upload.

Откроется страница с вашим логом, где вы сможете его проанализировать.

WWS-логи / Архив | MMOBoom.ru


Доброго времени суток, господа! Сегодня речь пойдет о неотъемлемой части рейдовой жизни — о комбат-логах.

Для начала давайте определимся, что же это такое (для тех, кто впервые увидел данный термин).

WWS или WMO логи — это записи боев в World of Warcraft, которые размещены на специальных сайтах. Многие пользуются аддоном Recount или его аналогами. По сути — это тот же Recount, но во-первых данные не нужно хранить у себя на компьютере, а во-вторых с этими записями можно делать такое, что встроенными аддонам WoW и не снилось.

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

На данный момент WWS заменили два более продвинутых проекта — WoWMeterOnline.com и WorldofLogs.com. Оба сервиса приблизительно равны по функционалу и я не стану углубляться в их сравнение — каждый выберет себе по вкусу. Отмечу лишь, что на WMO присутствует кое-какая поддержка русского языка в интерфейсе (хотя назвать ее "русским интерфейсом" язык не поворачивается — настолько она сейчас сырая), и в то же время сервис явно перегружен запросами — очень часто просматривая лог, связь с сервером обрывается. Я никогда не пользовался этим сайтом, так как сразу после появления World of Logs я пересел с WWS на него. И ни разу еще не пожалел.

Можете найти отличия самостоятельно. Вот ссылки на один и тот же лог, но залитый на два разных сервиса:
http://www.wowmeteronline.com//combat/log/1253276
http://www.worldoflogs.com/reports/11wtgwut6rs10l31/

Я буду вести свое повествование основываясь на WoL и по мере возможности давая ссылки на аналогичные действия на WMO.

Итак — поехали!

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


О, это очень просто. Достаточно перед началом боя ввести команду /combatlog в чат игры. Появится соответствующее уведомление о том, что запись лога запущена или отключена, а так же место, откуда этот лог можно забрать. Так можно делать, если вас интересует какой-то конкретный бой. Например, вы пришли траить Ануб'арака и перед началом боя вводите команду. Бой будет вестись до тех пор, пока вы не сделаете логаут или не пропишете команду на остановку ведения лога. В общем же случае, если вам требуется вести ежедневные логи рейдов, вы наверняка скоро устанете вводить эту команду. Можно, конечно, макрос написать и вынести на панельку соответствующую кнопочку, но я более чем уверен — когда-нибудь в ответственный момент вы забудете его нажать и вся запись боя канет в лету. Я не исключение, поэтому я нашел замечательный аддон, которым пользуюсь уже около года.

Встречайте — AutoCombatLog. Аддон представляет из себя простенький скрипт, который прописывает за вас команду /combatlog , как только вы входите в инстанс (в настройках /acl можно включить/выключить ведение логов в рейдах или в подземельях на 5 человек). Очень удобная вещь. Но не без недостатков — если вы забудете удалить или переименовать использованный комбат-лог, то на следующий день запись продолжится в тот же файл. На выходе мы получим большущий (от 300 МБ и выше) текстовый файл, который не примет ни один парсер (от англ. parser — анализатор, см. далее) логов. В этом случае придется вручную открывать файл WoWCombatLog.txt и удалять ненужные данные за прошлый день. Отчасти решить эту проблему поможет парсер от World of Logs. Об этом ниже.

Как заливать логи?


Тут все не намного сложнее. На обоих сайтах можно найти ссылку на парсер. Чтоб вы не утруждали себя поисками, вот ссылки на оба. Скачать клиент для WoL. Скачать клиент для WMO. Клиент написан на Java и поэтому будет необходимо установить себе соответствующий пакет. Весит он относительно немного, и вы можете скачать его с официального сайта — http://java.com/.

Будем считать, что установка прошла успешно и мы можем теперь запустить нашу программу. Так выглядят парсеры World of Logs и WoWMeterOnline соответственно:



Теперь от вас требуется войти под своим аккаунтом в клиенте. Если вы еще не зарегистрировались — самое время это сделать. Регистрация на World of Logs. Регистрация на WoWMeterOnline. Оба клиента предельно доступны в плане освоения. Вбейте в нем свои данные, не забудьте указать папку с логами ( \\Путь к World of Warcraft\\Logs\ ), где парсер по умолчанию будет искать файл WoWCombatLog.txt.

Рассмотрим поближе 3 больших кнопочки парсера WoL.
Open a file — с помощью этой кнопки мы можем открыть файл, который находится не в стандартной директории.
Open The WoW Log — открывает файл WoWCombatLog.txt.

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


В парсере WMO все делается точно так же.

Отдельно стоит упомянуть о такой замечательной функции клиента WoL как Live Report Session. Эта опция позволяет загружать лог боя сразу же после его окончания. Парсер ожидает, когда вы закончите битву с босом, и тут же автоматически загрузит лог на сайт. Вот как это выглядит

Как хранятся логи?


На обоих сайтах хранение комбат-логов представлено в виде календаря, где напротив каждого дня отмечен соответствующий рейд (а при наведении курсора можно просмотреть, каких именно боссов убивала гильдия в конкретный день и сколько раз вайпнулась при этом). Удобно? Не то слово! Но обо всем по порядку. Если вам нужно было залить лог только один раз, то можете смело дальше не читать. Если же вы решили, что хотите вести учет как минимум несколько раз в неделю, вам нужно будет создать свою гильдию. Делается это в профиле на сайте. После успешного создания гильдии вы сможете приглашать в нее других людей и позволять им выкладывать свои логи (необходимо повысить до звания Officer).

Сайт самостоятельно определяет тип эвента, подписывая каждого босса и режим (hard mode, normal mode). А если вам этого не достаточно, к каждому логу можно оставить коротенький комментарий. Например "Баджран в ИВК" или "Вайпфест на Ониксии". В отличии от WMO — World of Logs предусматривает апгрейд аккаунта, за определенную оплату. Оплаченный аккаунт дает возможность хранить логи неограниченное время. В других случаях логи удаляются спустя месяц. Весь остальной функционал в бесплатных аккаунтах сохранен.

Как просматривать логи?


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

  • Кто нанес больше всего урона на конкретном боссе.
  • Кто и от чего умер во время боя.
  • Каких мобов пришлось убить во время боя.
  • Кто дал БЛ.
  • Кто из друидов использовал батл-рес и кого именно он воскрешал.
  • а так же другую статистическую информацию, которую дает Recount.
и так далее и тому подобное. А если еще напрячь извилины, то из WWS можно извлечь даже ту информацию, которая задана не явно. К примеру, взглянув на график DPS дамагера, можно определить, не вылетал ли он за время боя (ровная линия на уровне нуля об этом свидетельствует). А зарывшись еще глубже (девиз World of Logs , кстати, можно перевести как "глубокий анализ логов") можно отыскать, скажем, слакеров, которые не пьют хаст-поты.

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

Pro: Expression Editor


Коротко пробегусь по этой замечательной опции WoL. При помощи редактора можно отсеять лишние сообщения в логе боя и вывести только ту информацию, которая нам нужна. Рассмотрим пример. Идем в этот лог: http://www.worldoflogs.com/reports/11wtgwut6rs10l31/, на котором записан бой с Ануб'араком в Испытании Великого Крестоносца (10 игроков). Выбираем из выпадающего списка — Expression Editor. А теперь придумываем, что нам хотелось бы узнать. Например, как жил Тэми на третьей фазе — по сколько он лечил босса, и кто излечивал его от дебаффа. Справка по запросам гласит:

Actors: sourceid, targetid, sourceuid, targetuid, sourcemobid, targetmobid, sourcename, targetname
ActorType: sourcetype:String, targettype, sourcereaction, targetreaction
Event type: type, subtype, fulltype (will add more info later)
Amounts: amount, absorbed, overheal, overkill
Spell: spell (name), spellid
Short cuts: damagetaken, healingdone

# Short event types
TYPE_DAMAGE=1
TYPE_MISS=2
TYPE_HEAL=3
TYPE_AURA=4
TYPE_DEATH=5
TYPE_CAST=6
TYPE_DISPEL=7
TYPE_GAIN=8
TYPE_ENCHANT=9
TYPE_DURABILITY=10
TYPE_SUMMON=11
TYPE_OTHER=50

Показать скрытый текст

Показать скрытый текст


Соответственно, Тэми лечил босса от дебаффа. Следовательно берем переменную из ряда actor. Поскольку действия выполняются магом (он является источником — source), то sourceName = "Тэми". Но если мы так напишем, нам выдадут все действия, которые он выполнял — все касты аркан бластов и так далее. А нам нужен именно хил. Определяем тип события: type = TYPE_HEAL . Объединяем оба запроса:

sourceName = "Тэми" and type = TYPE_HEAL

Аналогично составляем запрос для входящего в меня исцеления:

targetName = "Тэми" and type = TYPE_HEAL

Оба запроса работают сами по себе, но их можно объединить. Окружаем скобочками и ставим оператор OR (или). Вуаля:

(sourceName = "Тэми" and type = TYPE_HEAL) or (targetName = "Тэми" and type = TYPE_HEAL)

Вместо вывода


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

WWS-логи / Архив | MMOBoom.ru


Доброго времени суток, господа! Сегодня речь пойдет о неотъемлемой части рейдовой жизни — о комбат-логах.

Для начала давайте определимся, что же это такое (для тех, кто впервые увидел данный термин).

WWS или WMO логи — это записи боев в World of Warcraft, которые размещены на специальных сайтах. Многие пользуются аддоном Recount или его аналогами. По сути — это тот же Recount, но во-первых данные не нужно хранить у себя на компьютере, а во-вторых с этими записями можно делать такое, что встроенными аддонам WoW и не снилось.
Идея создания такого сервиса принадлежит сайту WowWebStats.com, отсюда и пошло название логов. Сайт функционирует и по сей день, но очень давно не обновлялся и уступает по функциональности аналогичным ресурсам.

На данный момент WWS заменили два более продвинутых проекта — WoWMeterOnline.com и WorldofLogs.com. Оба сервиса приблизительно равны по функционалу и я не стану углубляться в их сравнение — каждый выберет себе по вкусу. Отмечу лишь, что на WMO присутствует кое-какая поддержка русского языка в интерфейсе (хотя назвать ее "русским интерфейсом" язык не поворачивается — настолько она сейчас сырая), и в то же время сервис явно перегружен запросами — очень часто просматривая лог, связь с сервером обрывается. Я никогда не пользовался этим сайтом, так как сразу после появления World of Logs я пересел с WWS на него. И ни разу еще не пожалел.

Можете найти отличия самостоятельно. Вот ссылки на один и тот же лог, но залитый на два разных сервиса:
http://www.wowmeteronline.com//combat/log/1253276
http://www.worldoflogs.com/reports/11wtgwut6rs10l31/

Я буду вести свое повествование основываясь на WoL и по мере возможности давая ссылки на аналогичные действия на WMO.

Итак — поехали!

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


О, это очень просто. Достаточно перед началом боя ввести команду /combatlog в чат игры. Появится соответствующее уведомление о том, что запись лога запущена или отключена, а так же место, откуда этот лог можно забрать. Так можно делать, если вас интересует какой-то конкретный бой. Например, вы пришли траить Ануб'арака и перед началом боя вводите команду. Бой будет вестись до тех пор, пока вы не сделаете логаут или не пропишете команду на остановку ведения лога. В общем же случае, если вам требуется вести ежедневные логи рейдов, вы наверняка скоро устанете вводить эту команду. Можно, конечно, макрос написать и вынести на панельку соответствующую кнопочку, но я более чем уверен — когда-нибудь в ответственный момент вы забудете его нажать и вся запись боя канет в лету. Я не исключение, поэтому я нашел замечательный аддон, которым пользуюсь уже около года.

Встречайте — AutoCombatLog. Аддон представляет из себя простенький скрипт, который прописывает за вас команду /combatlog , как только вы входите в инстанс (в настройках /acl можно включить/выключить ведение логов в рейдах или в подземельях на 5 человек). Очень удобная вещь. Но не без недостатков — если вы забудете удалить или переименовать использованный комбат-лог, то на следующий день запись продолжится в тот же файл. На выходе мы получим большущий (от 300 МБ и выше) текстовый файл, который не примет ни один парсер (от англ. parser — анализатор, см. далее) логов. В этом случае придется вручную открывать файл WoWCombatLog.txt и удалять ненужные данные за прошлый день. Отчасти решить эту проблему поможет парсер от World of Logs. Об этом ниже.

Как заливать логи?


Тут все не намного сложнее. На обоих сайтах можно найти ссылку на парсер. Чтоб вы не утруждали себя поисками, вот ссылки на оба. Скачать клиент для WoL. Скачать клиент для WMO. Клиент написан на Java и поэтому будет необходимо установить себе соответствующий пакет. Весит он относительно немного, и вы можете скачать его с официального сайта — http://java.com/.

Будем считать, что установка прошла успешно и мы можем теперь запустить нашу программу. Так выглядят парсеры World of Logs и WoWMeterOnline соответственно:



Теперь от вас требуется войти под своим аккаунтом в клиенте. Если вы еще не зарегистрировались — самое время это сделать. Регистрация на World of Logs. Регистрация на WoWMeterOnline. Оба клиента предельно доступны в плане освоения. Вбейте в нем свои данные, не забудьте указать папку с логами ( \\Путь к World of Warcraft\\Logs\ ), где парсер по умолчанию будет искать файл WoWCombatLog.txt.

Рассмотрим поближе 3 больших кнопочки парсера WoL.
Open a file — с помощью этой кнопки мы можем открыть файл, который находится не в стандартной директории.
Open The WoW Log — открывает файл WoWCombatLog.txt.

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


В парсере WMO все делается точно так же.

Отдельно стоит упомянуть о такой замечательной функции клиента WoL как Live Report Session. Эта опция позволяет загружать лог боя сразу же после его окончания. Парсер ожидает, когда вы закончите битву с босом, и тут же автоматически загрузит лог на сайт. Вот как это выглядит

Как хранятся логи?


На обоих сайтах хранение комбат-логов представлено в виде календаря, где напротив каждого дня отмечен соответствующий рейд (а при наведении курсора можно просмотреть, каких именно боссов убивала гильдия в конкретный день и сколько раз вайпнулась при этом). Удобно? Не то слово! Но обо всем по порядку. Если вам нужно было залить лог только один раз, то можете смело дальше не читать. Если же вы решили, что хотите вести учет как минимум несколько раз в неделю, вам нужно будет создать свою гильдию. Делается это в профиле на сайте. После успешного создания гильдии вы сможете приглашать в нее других людей и позволять им выкладывать свои логи (необходимо повысить до звания Officer).

Сайт самостоятельно определяет тип эвента, подписывая каждого босса и режим (hard mode, normal mode). А если вам этого не достаточно, к каждому логу можно оставить коротенький комментарий. Например "Баджран в ИВК" или "Вайпфест на Ониксии". В отличии от WMO — World of Logs предусматривает апгрейд аккаунта, за определенную оплату. Оплаченный аккаунт дает возможность хранить логи неограниченное время. В других случаях логи удаляются спустя месяц. Весь остальной функционал в бесплатных аккаунтах сохранен.

Как просматривать логи?


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

  • Кто нанес больше всего урона на конкретном боссе.
  • Кто и от чего умер во время боя.
  • Каких мобов пришлось убить во время боя.
  • Кто дал БЛ.
  • Кто из друидов использовал батл-рес и кого именно он воскрешал.
  • а так же другую статистическую информацию, которую дает Recount.
и так далее и тому подобное. А если еще напрячь извилины, то из WWS можно извлечь даже ту информацию, которая задана не явно. К примеру, взглянув на график DPS дамагера, можно определить, не вылетал ли он за время боя (ровная линия на уровне нуля об этом свидетельствует). А зарывшись еще глубже (девиз World of Logs , кстати, можно перевести как "глубокий анализ логов") можно отыскать, скажем, слакеров, которые не пьют хаст-поты.

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

Pro: Expression Editor


Коротко пробегусь по этой замечательной опции WoL. При помощи редактора можно отсеять лишние сообщения в логе боя и вывести только ту информацию, которая нам нужна. Рассмотрим пример. Идем в этот лог: http://www.worldoflogs.com/reports/11wtgwut6rs10l31/, на котором записан бой с Ануб'араком в Испытании Великого Крестоносца (10 игроков). Выбираем из выпадающего списка — Expression Editor. А теперь придумываем, что нам хотелось бы узнать. Например, как жил Тэми на третьей фазе — по сколько он лечил босса, и кто излечивал его от дебаффа. Справка по запросам гласит:

Actors: sourceid, targetid, sourceuid, targetuid, sourcemobid, targetmobid, sourcename, targetname
ActorType: sourcetype:String, targettype, sourcereaction, targetreaction
Event type: type, subtype, fulltype (will add more info later)
Amounts: amount, absorbed, overheal, overkill
Spell: spell (name), spellid
Short cuts: damagetaken, healingdone

# Short event types
TYPE_DAMAGE=1
TYPE_MISS=2
TYPE_HEAL=3
TYPE_AURA=4
TYPE_DEATH=5
TYPE_CAST=6
TYPE_DISPEL=7
TYPE_GAIN=8
TYPE_ENCHANT=9
TYPE_DURABILITY=10
TYPE_SUMMON=11
TYPE_OTHER=50

Показать скрытый текст

Показать скрытый текст


Соответственно, Тэми лечил босса от дебаффа. Следовательно берем переменную из ряда actor. Поскольку действия выполняются магом (он является источником — source), то sourceName = "Тэми". Но если мы так напишем, нам выдадут все действия, которые он выполнял — все касты аркан бластов и так далее. А нам нужен именно хил. Определяем тип события: type = TYPE_HEAL . Объединяем оба запроса:

sourceName = "Тэми" and type = TYPE_HEAL

Аналогично составляем запрос для входящего в меня исцеления:

targetName = "Тэми" and type = TYPE_HEAL

Оба запроса работают сами по себе, но их можно объединить. Окружаем скобочками и ставим оператор OR (или). Вуаля:

(sourceName = "Тэми" and type = TYPE_HEAL) or (targetName = "Тэми" and type = TYPE_HEAL)

Вместо вывода


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

Отправить ответ

avatar
  Подписаться  
Уведомление о