Konfigurierbares Ruby Logger Setup: Logger.new (). level = variable

8

Ich möchte die Protokollierungsstufe einer Anwendung (Ruby) ändern.

%Vor%

Nun, der irb war nicht glücklich damit und warf "NameError: falscher konstanter Name Logger :: WARN" in mein Gesicht. Pfui! Ich wurde beleidigt.

Ich könnte dies in einem Fall tun / wann, um dies zu lösen, oder log.level = 1, aber es muss einen eleganteren Weg geben!

Hat jemand irgendwelche Ideen?

-Daniel

    
Daniel 05.04.2010, 15:55
quelle

1 Antwort

15

Warum benutzen Sie nicht einfach die Literalkonstante in Ihrem config Hash?

%Vor%

Dann musst du nicht mit const_get herumalbern oder so etwas; Du kannst einfach log.level = config[:level] machen.

Wenn unbedingt eine Zeichenfolge sein muss, können Sie das Präfix für den Namensraum löschen und const_get im Modul Logger aufrufen:

%Vor%

Wenn wirklich die qualifizierte Zeichenfolge sein muss, können Sie versuchen, dies zu verwenden Blog qualified_const_get method (das ist kein eingebautes!).

    
Mark Rushakoff 05.04.2010, 16:08
quelle

Tags und Links