2012-05-22 12 views
8

Dal Django documentation, qui è un formato ad esempio per la registrazione:formattatori di registrazione in Django

'formatters': { 
    'verbose': { 
     'format': '%(levelname)s %(asctime)s %(module)s: %(message)s' 
    } 
} 

Questo stampa qualcosa come:

ERRORE 2012-05-22 14: 33: 07,261 viste 42892 4398727168 ciao

Esiste un elenco di elementi che è possibile includere nella formattazione della stringa? Ad esempio, mi piacerebbe essere in grado di vedere la funzione e applicazione in cui viene creato il messaggio, ad esempio:

ERRORE messaggio di tempo myproject.myapp.views.login_function

risposta

19

Da Python logging module documentation:

  • asctime: 01.235.
    Ora leggibile dall'uomo quando è stato creato il numero LogRecord. Per impostazione predefinita, questa è la forma '2003-07-08 16: 49: 45,896' (i numeri dopo la virgola sono una frazione di millisecondo).

  • creato: %(created)f
    tempo quando il LogRecord è stato creato (come restituito da time.time()).

  • nome: %(filename)s
    porzione Nome di percorso.

  • funcName: %(funcName)s
    Nome della funzione che contiene la chiamata di registrazione.

  • levelName: %(levelname)s Testo livello di registrazione per il messaggio ('debug', 'INFO', 'ATTENZIONE', 'ERRORE', 'critici').

  • levelno: %(levelno)s
    numerico livello di registrazione per il messaggio (DEBUG, INFO, WARNING, ERROR, critica).

  • lineno: numero di riga %(lineno)d
    di origine in cui è stata emessa la chiamata di registrazione (se disponibile). Modulo

  • : %(module)s
    Module (porzione nome nome file).

  • msec: %(msecs)d
    parte millisecondi del tempo in cui il LogRecord è stato creato.

  • messaggio: %(message)s
    Il messaggio registrato, calcolato come msg % args. Questo viene impostato quando viene invocato Formatter.format().

  • nome: %(name)s
    Nome del registratore utilizzato per accedere alla chiamata.

  • percorso: %(pathname)s
    percorso completo del file di origine in cui è stata emessa la chiamata di registrazione (se disponibile).

  • processo: %(process)d
    Process ID (se disponibile).

  • processName: %(processName)s
    Nome del processo (se disponibile).

  • relativeCreated: %(relativeCreated)d
    Tempo in millisecondi quando il LogRecord è stato creato, relativo al tempo il modulo di registrazione è stato caricato.

  • filo: %(thread)d
    ID thread (se disponibile).

  • ThreadName: %(threadName)s
    nome Discussione (se disponibile).

i seguenti argomenti sono disponibili per Formatter.format() anche, anche se non sono destinati ad essere inclusi nella stringa di formato:

  • args:
    La tupla di argomenti fusa in msg per produrre un messaggio.

  • exc_info:
    eccezione tupla (à la sys.exc_info) o, se si è verificata un'eccezione, None.

  • msg:
    La stringa di formato passata nella chiamata di registrazione originale. Unita con args per produrre un messaggio o un oggetto arbitrario (vedere Using arbitrary objects as messages).

1

Step1. Modifica il tuo file settings.py

$ cd mysite 
$ vim mysite/settings.py 
'formatters': { 
    'simple': { 
     'format': '%(levelname)s %(asctime)s %(name)s.%(funcName)s:%(lineno)s- %(message)s' 
    }, 
}, 

Step2. Dovresti usare logger nella tua codifica in questo modo:

import logging 
logger = logging.getLogger(__name__) 

def fn1() { 
    logger.info('great!') 
    logger.info(__name__) 
} 

La speranza che ti aiuta!

Problemi correlati