LogáilLink to this heading
Leathnaíonn modúl logála Django tógáil Python: mod: loging.
Cumraítear logáil mar chuid den fheidhm ghinearálta django: func: django.setup, mar sin tá sé ar fáil i gcónaí mura bhfuil sé míchumasaithe go sainráite.
Cumraíocht logála réamhshocraithe DjangoLink to this heading
<logging-config-dictschema>De réir réamhshocraithe, úsáideann Django formáid Python: Ref: `Logging.config.dictConfig `.
Coinníollacha logála réamhshocLink to this heading
Is iad an tacar iomlán coinníollacha logála réamhshocraithe:
Nuair: Socrú: Is é DEBUG True:
Seolann an logálaí
django ``teachtaireachtaí san ordlathas ``django(seachasdjango.server) ag an leibhéalINFOnó níos airde chuig an gconsól.
Nuair: Socrú: Is é DEBUG False:
Seolann an logálaí
djangoteachtaireachtaí san ordlathasdjango(seachasdjango.server) le leibhéalERRORnóCRITICALgo dt:class: AdminEmailHandler.
Neamhspleách ar luach: socrú: DEBUG:
Seolann logger:ref: django-server-logger teachtaireachtaí ag an leibhéal ``INFO ``nó níos airde chuig an gconsól.
Déanann gach logger seachas: ref: django-server-logger iomadú logáil chuig a dtuismitheoirí, suas go dtí an logger fréimhe django. Tá na láimhseálaithe console agus mail_admins ceangailte leis an logálaí fréimhe chun an t-iompar a thuairiscítear thuas a sholáthar.
Seolann réamhshocraithe Python féin taifid ar leibhéal ``RABHADH ``agus níos airde chuig an gconsól.
Sainmhíniú logála réamhLink to this heading
Oidhreann cumraíocht logála réamhshocraithe Django réamhshocraithe réamhshocraithe Python. Tá sé ar fáil mar django.utils.log.default_logging agus sainithe in:source: django/utils/log.py:
{
"version": 1,
"disable_existing_loggers": False,
"filters": {
"require_debug_false": {
"()": "django.utils.log.RequireDebugFalse",
},
"require_debug_true": {
"()": "django.utils.log.RequireDebugTrue",
},
},
"formatters": {
"django.server": {
"()": "django.utils.log.ServerFormatter",
"format": "[{server_time}] {message}",
"style": "{",
}
},
"handlers": {
"console": {
"level": "INFO",
"filters": ["require_debug_true"],
"class": "logging.StreamHandler",
},
"django.server": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "django.server",
},
"mail_admins": {
"level": "ERROR",
"filters": ["require_debug_false"],
"class": "django.utils.log.AdminEmailHandler",
},
},
"loggers": {
"django": {
"handlers": ["console", "mail_admins"],
"level": "INFO",
},
"django.server": {
"handlers": ["django.server"],
"level": "INFO",
"propagate": False,
},
},
}
Féach: ref: cumraing-loging maidir le conas an chumraíocht logála réamhshocraithe seo a chomhlánú nó a athsholáthar.
Síntí logála DjangoLink to this heading
Soláthraíonn Django roinnt fóntais chun na riachtanais áirithe a bhaineann le logáil isteach i dtimpeallacht freastalaí gréasáin a láim
LogálaíLink to this heading
Soláthraíonn Django roinnt loggers ionsuite.
DjangoLink to this heading
<naming-loggers-hierarchy>An logálaí tuismitheora do theachtaireachtaí sa django:ref: `ordlathas logálaí ainmnithe `. Ní phostáil Django teachtaireachtaí ag baint úsáide as an ainm seo. Ina áit sin, úsáideann sé ceann de na loggers thíos.
django.requestLink to this heading
Teachtaireachtaí logála a bhaineann le láimhseáil iarratais. Ardaítear 5XX freagra mar theachtaireachtaí ERROR; Ardaítear 4XX freagra mar theachtaireachtaí RABHADH ``. Ní chuirtear iarratais atá logáilte chuig an logaire ``django.security logáilte chuig django.request.
Tá an comhthéacs breise seo a leanas ag teachtaireachtaí chuig an logaire seo:
status_code: An cód freagartha HTTP a bhaineann leis an iarratas.request: An réad iarratais a ghinigh an teachtaireacht logála.
django.freastalaLink to this heading
Logáil teachtaireachtaí a bhaineann le láimhseáil iarratais a fhaigheann an freastalaí a ghairm leis an ordú:djadmin: runserver. Logáiltear freagraí HTTP 5XX mar theachtaireachtaí ERROR, logáiltear freagraí 4XX mar theachtaireachtaí RABHADH ``, agus logáiltear gach rud eile mar `INFO.
Tá an comhthéacs breise seo a leanas ag teachtaireachtaí chuig an logaire seo:
status_code: An cód freagartha HTTP a bhaineann leis an iarratas.request: The request object (asocket.socket) that generated the logging message.
django.teimpléadLink to this heading
Logáil teachtaireachtaí a bhaineann le rindreáil teimpléid.
Logáiltear athróga comhthéacs atá in easnamh mar theachtaireachtaí ``DEBUG`.
django.db.backendsLink to this heading
Teachtaireachtaí a bhaineann le hidirghníomhú an chód leis an mbunachar sonraí Mar shampla, logáiltear gach ráiteas SQL ar leibhéal feidhmchláir a fhorghníomhaítear le hiarratas ag an leibhéal ``DEBUG` chuig an logger seo.
Tá an comhthéacs breise seo a leanas ag teachtaireachtaí chuig an logaire seo:
``fad ``: An t-am a thógtar chun an ráiteas SQL a fhorghníomhú.
sql: An ráiteas SQL a cuireadh i bhfeidhm.params: Na paraiméadair a úsáideadh sa ghlao SQL.alias: An alias den bhunachar sonraí a úsáidtear sa ghlao SQL.
Ar chúiseanna feidhmíochta, ní chumasaítear logáil SQL ach nuair a shocraítear Settings.debug go True, beag beann ar an leibhéal logála nó ar an láimhseálaithe atá suiteáilte.
Ní chuimsíonn an logáil seo tionscnamh ar leibhéal creata (m.sh. SET TIMEZONE`). Cas ar logáil ceisteanna i do bhunachar sonraí más mian leat gach ceist bunachar sonraí a fheiceáil.
django.utils.autoreloadLink to this heading
Logáil teachtaireachtaí a bhaineann le hathluchtú cód uathoibríoch le linn freastalaí forbartha Django a chur i bh Gineann an logálaí seo teachtaireacht ``INFO` nuair a bhrath modhnú i gcomhad cód foinse agus féadfaidh sé teachtaireachtaí `RABHADH ``a tháirgeadh le linn cigireachta an chórais chomhaid agus próisis síntiúis imeachta.
django.contrib.authLink to this heading
Log messages related to django.contrib.auth, particularly ERROR
messages are generated when a
PasswordResetForm is successfully submitted
but the password reset email cannot be delivered due to a mail sending
exception.
django.contrib.gisLink to this heading
Log messages related to GeodJango at various points: during
the loading of external GeoSpatial libraries (GEOS, GDAL, etc.) and when
reporting errors. Each ERROR log record includes the caught exception and
relevant contextual data.
``django.sheoladh ``Link to this heading
This logger is used in Comharthaí, specifically within the
Signal class, to report issues when dispatching a
signal to a connected receiver. The ERROR log record includes the caught
exception as exc_info and adds the following extra context:
``glacadóir`: Ainm an ghlacadóra.
err: An eisceacht a tharla nuair a ghlaoigh ar an nglacadóir.
django.security. *Link to this heading
The security loggers will receive messages on any occurrence of
SuspiciousOperation and other security-related
errors. There is a sub-logger for each subtype of security error, including all
SuspiciousOperations. The level of the log event depends on where the
exception is handled. Most occurrences are logged as a warning, while
any SuspiciousOperation that reaches the WSGI handler will be logged as an
error. For example, when an HTTP Host header is included in a request from
a client that does not match ALLOWED_HOSTS, Django will return a 400
response, and an error message will be logged to the
django.security.DisallowedHost logger.
Sroichfidh na himeachtaí logála seo an logaire django de réir réamhshocraithe, a sheolann imeachtaí earráide chuig riarthóirí nuair a bhíonn debug = false `. Ní logálfar iarratais a bhíonn freagra 400 mar gheall ar AbhraisciousOperation sa logálaí django.request`, ach chuig an logálaí django.security` amháin.
Chun cineál áirithe AspiciousOperation a thostú, is féidir leat an logaire sonrach sin a shárú tar éis an sampla seo:
LOGGING = {
# ...
"handlers": {
"null": {
"class": "logging.NullHandler",
},
},
"loggers": {
"django.security.DisallowedHost": {
"handlers": ["null"],
"propagate": False,
},
},
# ...
}
Is iad logálaí eile django.security` nach bhfuil bunaithe ar AspiciousOperation:
django.db.backends.schemaLink to this heading
Logálann sé na ceisteanna SQL a fhorghníomhaítear le linn athruithe scéime ar an mbunachar sonraí ag an gcreata:doc: </topics/migrations> imirceach. Tabhair faoi deara nach logálfaidh sé na ceisteanna a fhorghníomhaí:class: ~django.db.migrations.operations.runpython. Tá params` agus sql` ag teachtaireachtaí chuig an logaire seo ina gcomhthéacs breise (ach murab ionann agus django.db.backends, ní fad). Tá an brí céanna ag na luachanna mar a mhínítear in:ref: django-db-logger.
django.contrib.sesionsLink to this heading
Logáil teachtaireachtaí a bhaineann le:doc: `session framework`</topics/http/sessions>.
Déantar earráidí neamh-mharfacha a tharlaíonn nuair a úsáidtear an inneall:class: Django.contrib.sessions.backends.cached_db.sessionStore logáilte mar theachtaireachtaí
ERRORleis an rianaireacht chomhfhreagrach.
LáimhseálaitheLink to this heading
<python:logging.handlers>Soláthraíonn Django láimhseálaí logála amháin i dteann:mod: `iad siúd a sholáthraíonn an modúl logála Python `.
- class AdminEmailHandler(include_html=False, email_backend=None, reporter_class=None, using=None)Link to this definition
Seolann an láimhseálaí seo ríomhphost chuig an láithreán: setting: ADMINS do gach teachtaireacht logála a fhaigheann sé.
Má tá tréith
iarratasa taifead logála, cuirfear sonraí iomlána an iarratais san áireamh sa ríomhphost. Áireofar san ábhar ríomhphoist an abairt “IP inmheánach” má tá seoladh IP an chliaint sa socrú: INTERNAL_IPS; mura bhfuil, beidh “IP EXTERNAL” san áireamh ann.Má tá faisnéis rianaithe cruach sa taifead logála, cuirfear an rian cruach sin san áireamh sa ríomhphost.
Úsáidtear an argóint include_html` de AdminEmailHandler` chun rialú a dhéanamh an bhfuil ceangaltán HTML san áireamh sa ríomhphost rianaithe ina bhfuil ábhar iomlán an leathanaigh ghréasáin dífhabhtaithe a tháirgfeadh dá mbeadh: socrú: DEBUG
True. Chun an luach seo a shocrú i do chumraíocht, cuir san áireamh é sa sainmhíniú láimhseálaí doDjango.utils.log.adminEmailHandler, mar seo:"handlers": { "mail_admins": { "level": "ERROR", "class": "django.utils.log.AdminEmailHandler", "include_html": True, }, }Bí ar an eolas fao:ref: impleachtaí slándála a bhaineann le logáil `agus an `AdminEmailHand <logging-security-implications>ler` á úsáid agat.
Email is sent using the default mailer. This can be overridden by setting the
usingargument ofAdminEmailHandler, like this:"handlers": { "mail_admins": { "level": "ERROR", "class": "django.utils.log.AdminEmailHandler", "using": "internal", }, }If the specified mailer is not configured in the
MAILERSsetting, no email will be sent and no additional error will be raised.By setting the deprecated
email_backendargument ofAdminEmailHandler, the email backend that is being used by the handler can be overridden.email_backendis not supported whenMAILERSis defined or when theusingargument is provided.Ligeann an argóint
reporter_classde AdminEmailHandler` fo-aicmedjango.views.debug.exceptionReportera sholáthar chun an téacs rianaithe a sheoltar sa chomhlacht ríomhphoist a shaincheapadh. Soláthraíonn tú cosán allmhairithe teaghrán chuig an rang is mian leat a úsáid, mar seo:"handlers": { "mail_admins": { "level": "ERROR", "class": "django.utils.log.AdminEmailHandler", "include_html": True, "reporter_class": "somepackage.error_reporter.CustomErrorReporter", }, }- send_mail(subject, message, *args, **kwargs)Link to this definition
Seolann ríomhphoist chuig úsáideoirí admin. Chun an t-iompar seo a shaincheapadh, is féidir leat an rang:class: ~django.utils.log.adminEmailHandler a fho-aicmiú agus an modh seo a shárú.
ScagairíLink to this heading
Soláthraíonn Django roinnt scagairí logála i dteannta leo siúd a sholáthraíonn modúl logála Python.
- class CallbackFilter(callback)Link to this definition
Glacann an scagaire seo le feidhm aisghlaonna (ba chóir dó glacadh le argóint amháin, an taifead atá le logáil), agus glaonn sé do gach taifead a théann tríd an scagaire. Ní rachaidh láimhseáil an taifead sin ar aghaidh má fhilleann an glaoch ar ais bréagach.
Mar shampla, chun scagadh amach: exc: ~django.http.UnreadablePostError (arna ardú nuair a chuireann úsáideoir uaslódáil ar ceal) ó na ríomhphoist riaracháin, chruthófá feidhm scagaire:
from django.http import UnreadablePostError def skip_unreadable_post(record): if record.exc_info: exc_type, exc_value = record.exc_info[:2] if isinstance(exc_value, UnreadablePostError): return False return Trueagus ansin cuir é le do chumraíocht logála:
LOGGING = { # ... "filters": { "skip_unreadable_posts": { "()": "django.utils.log.CallbackFilter", "callback": skip_unreadable_post, }, }, "handlers": { "mail_admins": { "level": "ERROR", "filters": ["skip_unreadable_posts"], "class": "django.utils.log.AdminEmailHandler", }, }, # ... }
- class RequireDebugFalseLink to this definition
Ní chuirfidh an scagaire seo ar thaifid ach nuair a bhíonn settings.Debug bréagach.
Úsáidtear an scagaire seo mar seo a leanas sa chumraíocht réamhshocraithe:socrú: LOGGING chun a chinntiú nach seolann an:class: adminEmailHandler ríomhphoist earráide chuig riarthóirí ach nuair:socrú: DEBUG False`:
LOGGING = { # ... "filters": { "require_debug_false": { "()": "django.utils.log.RequireDebugFalse", }, }, "handlers": { "mail_admins": { "level": "ERROR", "filters": ["require_debug_false"], "class": "django.utils.log.AdminEmailHandler", }, }, # ... }
- class RequireDebugTrueLink to this definition
Tá an scagaire seo cosúil le:class: RequireDebugFalse, ach amháin nach ndéantar taifid a rith ach nuair:setting: DEBUG
True.