2013-08-23 17 views
9

I livelli di registrazione Python possono essere registrati utilizzando logging.addLevelName. Esiste un metodo per ottenere il numero di registrazione Python da un nome di livello?Registrazione Python - determinare il numero del livello dal nome

+3

Solo per essere sicuri: si è notato che [la documentazione su questa funzione] (http://docs.python.org/2/howto/logging.html#custom-levels) dice "La definizione dei propri livelli è possibile ma non dovrebbe essere necessario, in quanto i livelli esistenti sono stati scelti sulla base dell'esperienza pratica, tuttavia, se sei convinto che hai bisogno di livelli personalizzati, devi fare molta attenzione quando fai questo ... " – abarnert

risposta

15

Dopo aver chiamato addLevelName, il livello risultante viene trattato esattamente come tutti quelli standard:

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

Il fatto che getLevelName possibile mappare i nomi ai numeri nonché i numeri di nomi non è in realtà documentata in Python 2.x, né il nome dà alcun indizio che dovrebbe ... ma una rapida occhiata a the source mostra perché funziona.

+0

Sembra documentato. "Se viene passato un valore numerico corrispondente a uno dei livelli definiti, viene restituita la rappresentazione di stringa corrispondente." – user2357112

+1

@ user2357112: È il contrario che non è documentato, dove si passa una stringa e si ottiene il numero corrispondente. – abarnert

+0

Blarg, ha interpretato erroneamente la riga che ho citato. – user2357112

Problemi correlati