v4.1.0, 4.1.1:
Изменен сервер активации: cdn.fundata.fun Новый экшен "Индекс http клиента" Новый параметр GET/POST : "Асинхронный вызов" - Вызывайте запросы в новом потоке, без ожидания! OnErrorCallback, AfterRequestCallback принимает также (request, retry) объекты, как и BeforeRequestCallback. Выполнить JavaScript - Обновил редактор кода, теперь показывает подсказки API Impersonate. Обновил Crypto модуль (RSA) Добавил много подсказок к разному функционалу. По дефолту теперь Remote Build (Экономия веса проекта): https://github.com/Int64x86/moduleDll Много мелких правок.Logger
-
@UserTrue не, не приходит событие custom-log (
/////Api event handler Api.SetEventHandler(function(EventType, EventData) { /////Display log if (EventType == "log") { let Logs = $('#Logs'); let LogLine = $("<div></div>").addClass("log-line").attr("data-log-type", EventData["type"]); let Text = $("<span></span>").text(EventData["text"]); /////Add action id if (EventData["action_id"]) { LogLine.append($("<span></span>").text("[" + EventData["action_id"] + "] ").addClass("uk-text-muted")) } /////Set color if (EventData["type"] == "success") { Text.addClass("uk-text-success") } else if (EventData["type"] == "info") { Text.addClass("uk-text-muted") } else if (EventData["type"] == "fail") { Text.addClass("uk-text-danger") } /////Remove old lines $('#Logs .log-line').slice(500).remove(); /////Append text LogLine.append(Text) Logs.append(LogLine) } if (EventType == "custom-log") { console.log(EventData) // ничего не выводится let Logs = $('#Logs'); let LogLine = $("<div></div>").addClass("log-line").attr("data-log-type", EventData["type"]); let Text = $("<span></span>").text(EventData["text"]); /////Add action id, date and thread name var MsgDate = new Date(EventData["date"]); LogLine.append($("<span></span>").text("[" + EventData["action_id"] + "] " + "[" + MsgDate + "] " + EventData["thread_name"]).addClass("uk-text-muted")) /////Set color if (EventData["type"] == "success") { Text.addClass("uk-text-success") } else if (EventData["type"] == "fail") { Text.addClass("uk-text-danger") } else if (EventData["type"] == "user") { if (EventData["level"] == "warn") { Text.addClass("text-yellow") } else if (EventData["level"] == "error") { Text.addClass("uk-text-danger") } } /////Append text LogLine.append(Text) Logs.append(LogLine) } -
-
@UserTrue спасибо большое. Есть только пожелание.
Выше в коде у меня оба события добавлены в хендлер - и log, и custom-log. Я ведь правильно понимаю, что кастомный логгер логирует только события, которые в шабе указаны в экшенах и не будет отправлять системные сообщения баса и т.п.? И по этой причине надо все равно для таких сообщений оставлять событие "log"? -
@thepappo да, за исключением сообщений об ожидании элемента, их тоже умеет перехватывать. Получается, что он не может отправить только сообщение о ожидании ресурса и завершение потока, если оно произошло не через экшены из логгера. Сообщение о ожидании ресурса не часто встречается и не особо важно как правило, а ошибки потока можно самому ловить в логике скрипта и если надо выдавать ошибку через экшен в логгере
-
-
@UserTrue тут просто проблема в том, что нельзя одновременно log и custom-log оставить, будет 2 лога выводится. А весь скрипт пихать в игнор как-то такое себе. Особенно когда и так игнор ошибок в местах где ожидается их вывод расставлен. А вывод в лог того, что не в игноре - это на случай непредведенных ошибок.
Или можно как-то отслеживать, пришел ли custom-log и не выводить в этом случае log? Просто это ведь 2 отдельных хендлера и по идее никак не сделать.
-
@thepappo я попробую добавить обёртку для ошибок, чтобы они перехвались, не знаю будет ли это работать в 100% случаев.
А слушать оба события наверное можно, но придется что-то костылить, чтобы понимать было такое событие в кастомном логе или нет -
Обновил v3.5
Улучшения касаются отправки событий в вебинтерфейс.
- Добавил перехват ошибок и успехов, которые были вызваны не через сам модуль.
На данный момент модуль перехватывает большинство сообщений за исключением сообщений для ресурсов: 1) ожидание ресурса 2) все данные были обработаны для ресурса - Событие ожидание элемента приходит с пометко level: "bas_warn"
В node.js вместо console.log следует использовать модуль
BAS_API(`logger_log({ "color": (""), "en": ("hello"), "level": ("info"), "ru": ("Привет") })`); - Добавил перехват ошибок и успехов, которые были вызваны не через сам модуль.
-
В планировщике не работает функция logger_log ? или это ток у меня проблема.
-
@biohacker01 said in Logger:
В планировщике не работает функция logger_log ? или это ток у меня проблема.
Не проверял, но думаю, что нет. Но теоретически можете в исходнике модуля заменить имя события 'custom-log' на 'log' или дублировать событие этим именем.
(engine.js метод emit)