nsIConsoleService
z Mozilla Developer Center, polskiego centrum programistów Mozilli.
Spis treści |
[edytuj] 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).
[edytuj] Przykłady
[edytuj] 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().
[edytuj] 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 #aLineNumberz 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.aLineNumberiaColumnNumber— określa dokładne położenie błędu.aColumnNumberwykorzystywany 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 = 2insIScriptError.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 nsIScriptError.idl.