Podsumowanie
Usługa konsoli to back-end dla narzędzia Konsola błędów, dostępnym w każdej aplikacji Mozilli. Wykorzystywany jest do wypisywania różnych wiadomości, ostrzeżen i błędów oraz do ich pobierania.
Definicja interfejsu: xpcom/base/nsIConsoleService.idl
Identyfikator kontraktu: @mozilla.org/consoleservice;1
Interfejs ten nie został zamrożony i może ulec zmianie w przyszłości (błąd 228205).
Przykłady
Zapisywanie prostej wiadomości w dzienniku
Typowe zastosowanie to zapisywanie wiadomości do konsoli:
function LOG(msg) { var consoleService = Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService); consoleService.logStringMessage(msg); }
Alternatywne metody to m. in. Components.utils.reportError i dump().
Zapisywanie do dziennika wiadomości z dodatkowymi informacjami
Aby dołączyć inne informacje, takie jak plik żródłowy i numer linii, konieczne jest skorzystanie z bardziej skomplikowanego kodu:
function myLogToConsole(aMessage, aSourceName, aSourceLine, aLineNumber, aColumnNumber, aFlags, aCategory) { var consoleService = Components.classes["@mozilla.org/consoleservice;1"] .getService(Components.interfaces.nsIConsoleService); var scriptError = Components.classes["@mozilla.org/scripterror;1"] .createInstance(Components.interfaces.nsIScriptError); scriptError.init(aMessage, aSourceName, aSourceLine, aLineNumber, aColumnNumber, aFlags, aCategory); consoleService.logMessage(scriptError); }
aMessage
— tekst do zapisania w dzienniku. Parametr wymagany.aSourceName
— adres URL pliku z błędem. W konsoli będzie to odnośnik, więc powinien to być prawdziwy adres URL. Można także przekazać wartośćnull
, jeśli wskazanie pliku żródła nie jest potrzebne/możliwe.aSourceLine
— linia #aLineNumber
z plikuaSourceName
. Za dostarczenie tej linii odpowiada programista. Można także przekazaćnull
, wówczas linia żródła nie zostanie wyświetlona w konsoli błędów.aLineNumber
iaColumnNumber
— określa dokładne położenie błędu.aColumnNumber
wykorzystywany jest do wskazania strzałką problematycznego znaku.aFlags
— jedna z flag określonych wnsIScriptError
. W momencie tworzenia tego artykułu dostępnymi wartościami były:nsIScriptError.errorFlag = 0
,nsIScriptError.warningFlag = 1
,nsIScriptError.exceptionFlag = 2
insIScriptError.strictFlag = 4
.aCategory
— tekst określający rodzaj kodu, który spowodował dany błąd. Istnieje kilka kategorii, ale nie ma jednego miejsca, w którym można by znależć je wszystkie. Mamy nadzieję, że kiedyś znajdą się w <tt>nsIScriptError.idl</tt>.tlumaczyc to?