2016-05-19 30 views
5

Ho l'impressione (ma non trovo la documentazione per esso) che unittest imposta il livello di registrazione su WARNINGper tutti i logger. Vorrei:Cambia livello registro in unittest

  • essere in grado di specificare il livello di registrazione per tutti i logger, dalla linea di comando (durante l'esecuzione dei test) o dal modulo di test si
  • evitare unittest guai con il livello di registrazione di applicazione : durante l'esecuzione dei test voglio avere la stessa uscita di registrazione (stessi livelli) di quando esegui l'applicazione

Come posso ottenere questo risultato?

+0

Come al solito, è possibile fornire un esempio minimo ma completo, con l'output previsto e effettivo? –

risposta

1

Vedere l'esempio seguente per l'accesso in Python. Inoltre puoi cambiare LOG_LEVEL usando il metodo 'setLevel'.

import os 
import logging 

logging.basicConfig() 
logger = logging.getLogger(__name__) 

# Change logging level here. 
logger.setLevel(os.environ.get('LOG_LEVEL', logging.INFO)) 

logger.info('For INFO message') 
logger.debug('For DEBUG message') 
logger.warn('For WARNING message') 
logger.error('For ERROR message') 
logger.fatal('For CRITICAL message') 
+0

Questo è il modo in cui viene impostato il framework di registrazione python. Ma OP sta suggerendo che questo non funziona quando è coinvolto l'unittest. l'unittest apparentemente mette a posto le cose per lui, quindi _why_ and _how_ and _what to do_? –