ist es in angular möglich, den Debug-Protokolllevel zur Laufzeit einzustellen?

8

Ist es möglich, die $logProvider.debugEnabled([flag]); zur Laufzeit zu wechseln?

Die aktuelle Situation:

Der eckige Client lädt Einstellungen vom Server in der Ausführungsphase. Abhängig von den Einstellungen möchte ich die Methode $logProvider.debugEnabled([flag]) einstellen.

Vielen Dank im Voraus, Stevo

    
stevo 05.12.2014, 18:17
quelle

3 Antworten

1

Die kurze Antwort dafür lautet: Nein, nicht wirklich.

Sobald Ihre Anwendung über Ihren .config() -Block konfiguriert wurde, kann keine weitere Konfiguration stattfinden, nachdem die Anwendung bootstrappt wurde.

Dies liegt an der Arbeitsweise der Anbieter. Sie sind nur zur Konfigurationszeit verfügbar. Es kann eine Möglichkeit geben, die Konfiguration zu erzwingen und dann den neuen Dienst $log manuell in alle Controller einzufügen, aber wenn es einen Weg dafür gibt, bin ich mir nicht sicher, wie.

    
jedd.ahyoung 22.12.2014 16:03
quelle
1

Ich habe $log.debug(...) eingerichtet, um den Loglevel zur Laufzeit zu ändern.

Wenn Sie AngularJS Logging mit Decorators verbessern , kam ich auf die Idee für das folgende Code-Snippet:

%Vor%

Der Decorator leitet Aufrufe nur an $log.debug weiter, wenn debugEnabled in Ihrem lokalen Speicher auf true gesetzt ist - der Wert kann über den Service ConfigService geändert werden.

Jetzt können Sie einfach ConfigService#debugEnabled mit dem Wert aufrufen, den Sie von Ihrem Server geladen haben, um den Loglevel zu ändern.

Dank der letzten vier Zeilen können Sie einfach cfg.debugEnabled(true) auf Ihrer Konsole aufrufen, um den Debug-Modus zur Laufzeit zu aktivieren.

Wenn Sie nicht in die Konsole tippen möchten, können Sie das globale cfg vermeiden und JavaScript-Lesezeichen (oder Elemente auf Ihrer Website) verwenden, um die Protokollstufe zu ändern.

    
stuXnet 13.01.2016 11:42
quelle
0

Wie ich es gemacht habe, war

  1. manuelle Eingabe von $ cookies in den Konfigurationsblock, dann
  2. Verwenden Sie das als Referenz in einem Service.
  3. bezieht sich in allen Leseorten auf die Service-Variable.

    %Vor%
RevelationX 28.08.2015 19:23
quelle

Tags und Links