ich eine Django-Projekt, das die folgende Funktion hat, in dem ich einen Logger auslösen soll:Auslösen Python-Logger in Django-Projekt
def remove_email_from_list(list_id, email_address):
subscriber_hash = hashlib.md5(email_clean)
url = '%s/lists/%s/members/%s' % (settings.API_URL, list_id, subscriber_hash.hexdigest())
r = requests.delete(url, auth=HTTPBasicAuth('user', settings.API_KEY),)
if r.status_code != 204:
logging.critical("Executed mailchimp api call, wrong status code. Message body = " + r.text)
return r
Allerdings habe ich versucht, alle diese Logger diesen Fehler zu fangen und eine E-Mail senden , aber irgendwie wird der Logger nicht ausgelöst. Weißt du was ich falsch mache?
'loggers': {
'django': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True
},
'project_name.logging': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
'django.logging': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
Hmm ich noch einige Probleme habe, dies zu konfigurieren. Diese Datei (helper_functions.py) befindet sich im Stammverzeichnis meiner Anwendung "mail". Wenn ich meinen Logger als "api_logger" definieren würde, müsste ich den Logger mit "mail.api_logger" verwenden? Das fängt immer noch nicht meine Protokolle. – hY8vVpf3tyR57Xib
Nein, nein ersetzt '__name__' nicht durch irgendeinen Brauch. '__name__' wird automatisch durch den gestrichelten Pfad des Moduls ersetzt. Wenn Sie "__name__" durch "api_logger" ersetzen, müssten Sie wahrscheinlich denselben Namen in der Logger-Konfiguration verwenden. – Tim
Sorry, ich wollte nicht unhöflich sein und ein doppeltes 'Nein' benutzen. Ich wollte eigentlich 'Nein, tu' nicht schreiben. Auch die doppelten Unterstriche wurden durch Formatierung entfernt, sorry dafür. hätte "__name__" sein sollen – Tim