---
title: "Logáil"
version: 6.0
locale: ga
source: https://docs.djangoproject.com/ga/6.0/ref/logging/
canonical: https://djangodocs.dev/ga/6.0/ref/logging/
---
# Logáil

> **See also**
>
> - [Conas logáil a chumrú agus a úsáid](/ga/6.0/howto/logging/#logging-how-to)
> - \<logging-explanation\>:ref: Forbhreathnú logála Django \`

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 Django

\<logging-config-dictschema\>De réir réamhshocraithe, úsáideann Django formáid Python: Ref: Logging.config.dictConfig .

### Coinníollacha logála réamhshoc

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``` (seachas `django.server`) ag an leibhéal `INFO` nó níos airde chuig an gconsól.

Nuair: Socrú: Is é DEBUG `False`:

- Seolann an logálaí `django` teachtaireachtaí san ordlathas `django` (seachas `django.server`) le leibhéal `ERROR` nó `CRITICAL` go 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éamh

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 Django

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í

Soláthraíonn Django roinnt loggers ionsuite.

#### `Django`

\<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.request`

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.freastala`

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 (a [`socket.socket`](https://docs.python.org/3/library/socket.html#socket.socket)) that generated
  the logging message.

#### `django.teimpléad`

Logáil teachtaireachtaí a bhaineann le rindreáil teimpléid.

- Logáiltear athróga comhthéacs atá in easnamh mar theachtaireachtaí DEBUG\`.

#### `django.db.backends`

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.autoreload`

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.auth`

Log messages related to [django.contrib.auth](/ga/6.0/ref/contrib/auth/), particularly `ERROR`
messages are generated when a
[`PasswordResetForm`](/ga/6.0/topics/auth/default/#django.contrib.auth.forms.PasswordResetForm) is successfully submitted
but the password reset email cannot be delivered due to a mail sending
exception.

#### `django.contrib.gis`

Log messages related to [GeodJango](/ga/6.0/ref/contrib/gis/) 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 \`\`

This logger is used in [Comharthaí](/ga/6.0/ref/signals/), specifically within the
[`Signal`](/ga/6.0/topics/signals/#django.dispatch.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. *`

The security loggers will receive messages on any occurrence of
[`SuspiciousOperation`](/ga/6.0/ref/exceptions/#django.core.exceptions.SuspiciousOperation) and other security-related
errors. There is a sub-logger for each subtype of security error, including all
`SuspiciousOperation`s. 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`](/ga/6.0/ref/settings/#std-setting-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`:

- \<csrf-rejected-requests\>\`\`django.security.csrf\`\`: le haghaidh: Teipeanna CSRF .

#### `django.db.backends.schema`

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.sesions`

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í `ERROR` leis an rianaireacht chomhfhreagrach.

### Láimhseálaithe

\<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)`

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 `iarrata` sa 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í do `Django.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.

\<topic-email-backends\>Trí an argóint `email_backend` de AdminEmailHandler\` a shocrú, is féidir an:ref: backend ríomhphost atá á úsáid ag an láimhseálaí a athshealbhú, mar seo:

```
"handlers": {
    "mail_admins": {
        "level": "ERROR",
        "class": "django.utils.log.AdminEmailHandler",
        "email_backend": "django.core.mail.backends.filebased.EmailBackend",
    },
}
```

De réir réamhshocraithe, úsáidfear sampla den chúltaca ríomhphoist a shonraítear in:setting: EMAIL\_BACKEND.

Ligeann an argóint `reporter_class` de AdminEmailHandler\` fo-aicme `django.views.debug.exceptionReporter` a 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)`

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í

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)`

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 True
```

agus 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 RequireDebugFalse`

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 RequireDebugTrue`

Tá an scagaire seo cosúil le:class: RequireDebugFalse, ach amháin nach ndéantar taifid a rith ach nuair:setting: DEBUG `True`.
