2013-08-23 11 views
9

Poziom rejestrowania w języku Python można zarejestrować za pomocą logging.addLevelName. Czy istnieje metoda uzyskania numeru logowania Python od nazwy poziomu?Rejestrowanie w języku Python - określanie numeru poziomu od nazwy

+3

Aby się upewnić: Zauważyłeś, że [dokumentacja tej funkcji] (http://docs.python.org/2/howto/logging.html#custom-levels) mówi: "Możliwe jest zdefiniowanie własnych poziomów , ale nie powinno być konieczne, ponieważ istniejące poziomy zostały wybrane na podstawie praktycznego doświadczenia, ale jeśli jesteś przekonany, że potrzebujesz niestandardowego poziomu, należy zachować szczególną ostrożność podczas wykonywania tego ... " – abarnert

Odpowiedz

15

Po wywołaniu addLevelName, uzyskany poziom traktowany jest dokładnie taka sama, jak wszystkich standardowych:

>>> import logging 
>>> logging.getLevelName(10) 
'DEBUG' 
>>> logging.getLevelName('DEBUG') 
10 
>>> logging.addLevelName(15, 'DEBUGGISH') 
>>> logging.getLevelName(15) 
'DEBUGGISH' 
>>> logging.getLevelName('DEBUGGISH') 
15 

Fakt getLevelName może mapowania nazw na numery jak numery do nazw nie jest właściwie udokumentowane w Pythonie 2.x, ani nazwa nie daje żadnej wskazówki, że powinna ... ale szybkie spojrzenie na the source pokazuje, dlaczego działa.

+0

Wygląda na udokumentowane mi. "Jeśli wartość numeryczna odpowiadająca jednemu ze zdefiniowanych poziomów jest przekazywana, zwracana jest odpowiednia reprezentacja ciągów znaków." – user2357112

+1

@ user2357112: Jest na odwrót, że nie jest udokumentowane, gdzie przekazujesz ciąg znaków i uzyskujesz odpowiedni numer. – abarnert

+0

Blarg, błędnie przeczytałem wiersz, który zacytowałem. – user2357112

Powiązane problemy