Ich habe versucht, die Anmeldung in Django richtig für die Entwicklung zu konfigurieren, so kann ich es nur in der Konsole für jetzt sehen, aber wenn ich vom Drucken zum Protokollieren dann die Ausgabe einfach nicht erscheint.Django Logging - für lokale Entwicklung
django lokalen Einstellungen Setup:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'stream': sys.stdout
},
},
'loggers': {
'myapp.management': {
'handlers': [
# 'mail_admins',
# 'syslog',
'console'],
'level': 'DEBUG',
},
'django': {
'handlers': [
# 'mail_admins',
# 'syslog',
'console'],
'level': 'INFO',
},
}
}
Dann wird in einem django-Management-Befehl:
import logging
logger = logging.getLogger(__name__)
des Loggers Mit über:
def collect_data(self, url, method, payload=None):
response = getattr(requests, method)(url=url json=payload, headers=self.headers)
if response.status_code == 200:
logging.debug('{}'.format(response.json())
# print('{}'.format(response.json()))
return response.json()
else:
logging.warning('{}'.format(response.raise_for_status()))
# print('{}'.format(response.raise_for_status()))
return response.raise_for_status()
Dank bizarrerweise kann ich einige Ausgaben mit 'logging.info ('some string')' an einigen Stellen in meinem Management-Befehlsskript bekommen, aber nicht in anderen. An den Stellen, an denen es nicht funktioniert, funktioniert ein 'print ('some string')' direkt neben der Protokollierung. Ich bekomme keine Fehler, deshalb habe ich keine Ahnung, warum es an manchen Orten funktioniert, aber nicht an anderen? – Yunti
Können Sie die gesamte Datei posten? – Nirri