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

> **See also**
>
> - [Conas logáil a chumrú agus a úsáid](/ga/5.2/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`: An réad iarratais (a:py:class: socket.socket) a ghinigh an teachtaireacht logála.

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

> **New in Django 4.2.16**

Gintear teachtaireachtaí logála a bhaineann le:doc: contrib/auth, go háirithe teachtaireachtaí `ERROR` nuair a chuirtear a:class: ~django.contrib.auth.forms.passwordResetForm isteach go rathúil ach ní féidir an ríomhphost athshocraithe pasfhocal a sheachadadh mar gheall ar eisceacht seolta ríomhphoist.

#### `django.contrib.gis`

Logáil teachtaireachtaí a bhaineann le:doc: contrib/gis/index ag pointí éagsúla: le linn luchtú leabharlanna Geospásúla seachtracha (GEOS, GDAL, srl.) agus nuair a thuairisciú earráidí. Cuimsíonn gach taifead logála ERROR\` an eisceacht ghafa agus na sonraí comhthéacsúla ábhartha.

#### django.sheoladh \`\`

Úsáidtear an logaire seo in:doc: signals, go sonrach laistigh den aic:mod: ~Django.Dispatch.Signal, chun saincheisteanna a thuairisciú agus comhartha á sheoladh chuig glacadóir ceangailte. Cuimsíonn an taifead logála `ERROR` an eisceacht ghafa mar exc\_info\` agus cuireann sé an comhthéacs breise seo a leanas leis:

- glacadóir\`: Ainm an ghlacadóra.
- `err`: An eisceacht a tharla nuair a ghlaoigh ar an nglacadóir.

#### `django.security. *`

Gheobhaidh na logóirí slándála teachtaireachtaí ar aon tarlú de:exc: ~django.core.exceptions.SuspiciousOperation agus earráidí eile a bhaineann le slándáil. Tá fo-logaire ann do gach fo-chineál earráide slándála, lena n-áirítear gach `SuspiciousOperation`. Braitheann leibhéal an imeachta logála ar an áit a láimhseálfar an eisceacht. Déantar an chuid is mó de na himeachtaí a logáil mar rabhadh, agus logáilfear aon ```Abhrabhachas ``a shroicheann láimhseálaí WSGI mar earráid. Mar shampla, nuair a chuirtear ceannteideal HTTP ``Host``` san áireamh in iarratas ó chliant nach bhfuil meait:setting: ALLOWED\_HOSTS, cuirfidh Django freagra 400 ar ais, agus logálfar teachtaireacht earráide chuig an logger `Django.security.disallowedHost`.

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