Próbuję dodać zmienną do mojej linii dziennika poprzez mój plik settings.py.Django: Przekaż zmienną do rejestrowania pliku ustawień
Jest to kod w ustawieniach (część rejestrowanie):
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'CRITICAL',
'class': 'django.utils.log.AdminEmailHandler'
},
'customhandler':{
'level':'DEBUG',
'class':'logging.RotatingFileHandler',
'formatter':'custom_format',
'filename':LOG_LOCATION
},
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'CRITICAL',
'propagate': True,
},
'Logger_Custom1': {
'handlers':['customhandler'],
'level':'DEBUG',
'propagate':True
},
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'custom_format':{
'format':'[%(asctime)s %(levelname)s T:%(threadName)s F:%(funcName)s ] %(message)s '
},
}
}
Powyższy kod działa poprawnie, ale teraz chciałbym każdą wiadomość dziennika, aby mieć zmienną na końcu. Coś takiego:
MyVariable = "Somelines"
[%(asctime)s %(levelname)s T:%(threadName)s F:%(funcName)s ] %(message)s 'MyVariable
Tak mój dziennik będzie mieć zawartość tej zmiennej na końcu każdej linii logowania. Wiem, że możemy to zrobić w funkcji widoku w ten sposób: logging.warning('% before you %','Look','Leap')
Ale to będzie wymagać od nas włączenia tej linii wszędzie osobno. Ponadto, gdy musimy dodać lub zmienić nazwę zmiennej, będziemy musieli zmienić tę linię wszędzie w każdym pliku.
Tak więc zastanawiałem się, czy można to zrobić bezpośrednio z pliku settings.py, abyśmy mogli dokonać jednej zmiany i będzie ona dotyczyć wszystkich komunikatów rejestrowania.
I dodaje spację na końcu łańcucha formatowania (tuż po '% (komunikatów) s'), może okazać się pomocne w rzeczywistym kodzie, jak dobrze! W ten sposób pojawi się spacja między komunikatem dziennika Django a twoją niestandardową wiadomością. Pamiętaj też, że działa to tylko tak długo, jak długo 'testvar' jest ciągiem! Możesz uczynić go nieco bardziej wytrzymałym poprzez zawinięcie go za pomocą funkcji string, czyli 'str (testvar)'. – Hannele
Hej, to świetne wskazówki ...... Dzięki ... –