Ich habe eine Mason-Vorlage, die unter mod_perl ausgeführt wird, die Log :: Log4perl verwendet.
Ich möchte den Log-Level eines bestimmten Appenders ändern, aber das Ändern der Konfiguration ist zu umständlich, da es unseren Bereitstellungsprozess durchlaufen müsste, um live zu gehen.
Gibt es eine Möglichkeit, die Protokollierungsstufe eines Appenders zur Laufzeit nach dem Start von Apache zu ändern, ohne die Konfigurationsdatei zu ändern, und sich diese Änderung dann auf neue Apache-Threads auswirkt?
Wenn Sie die Log-Level-Konstanten von Log::Log4perl::Level
importiert haben, können Sie Folgendes tun:
Dies ist im Ändern der Log-Level auf einem Logger Abschnitt in der Log::Log4perl
docs .
Es scheint irgendwie hacky zu mir, aber es funktioniert:
$Log::Log4perl::Logger::APPENDER_BY_NAME{SCREEN}->threshold($DEBUG);
Und um es dynamischer zu machen, könnten Sie eine Variable für den Namen und die Ebene des Appenders übergeben.
%Vor%