Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

CIRCLE / cloud

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 94
  • Merge Requests 10
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Log

Log

Last edited by Őry Máté Sep 11, 2013
Page history

== Röviden ==

Logolásra a django beépített log rendszerét használjuk. Következőkben megpróbálom röviden összefoglalni, mit, miért úgy valósítottam meg, ahogy, s hogy hogyan lehet használni a log keretrendszert.

A log keretrendszer a következő elemeket biztosítja számunkra: log hívások, loggerek, handlerek, filterek s formatterek. Ezek közül az első az, amit a kódban elhelyezve az üzenetet ír a logba, ha meghívódik. Utóbbiak pedig ezen üzenetek feldolgozását leíró szabályok. Az alábbiakban ezekről kívánok röviden írni. A django logolási lehetőségeiről bővebben: https://docs.djangoproject.com/en/1.5/topics/logging/

Log hívások

Az alábbi log hívásokat különböztetjük meg, prioritás szerint a legerősebbtől a leggyengébb felé:

  • logger.critical()
  • logger.error()
  • logger.warning()
  • logger.info()
  • logger.debug()

A kódban a log hívások előtt szerepelnie kell(ene) a következő két sornak:

.. TODO: Indent lines, set language: Example .. code-block:: python import logging logger = logging.getLogger(name)

A logging.getLogger paramétere string, amely nevet a loggernek szánjuk. Amennyiben itt meghagyjuk a {{{name }}} változót, a logger neve a django app nevével lesz azonos. Ez lehetőséget ad arra, hogy egy django appon belül két loggerünk legyen, s az azokon keresztül indított log hívásokat másképp dolgozzuk fel.

.. TODO: Indent lines, set language: Example .. code-block:: python import logging

loggerevision 1 <changeset/1>_ = logging.getLogger('app_log1') loggerevision 2 <changeset/2>_ = logging.getLogger('app_log2')

loggerevision 1 <changeset/1>.debug('Ez most a log1-en keresztül') loggerevision 2 <changeset/2>.debug('ez pedig a log2-n keresztül megy')

Log beállítások

Egy kicsit kipuculva lejjebb látható egy példa log beállítás, alatta rövid magyarázat.

.. TODO: Indent lines, set language: Example .. code-block:: python LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters':{ 'simple': { 'format': '%(asctime)s [%(levelname)s]: %(message)s', 'datefmt': '%Y-%m-%d %H:%M:%S', }, }, 'filters': { }, 'handlers': { 'syslog': { 'level': 'DEBUG', 'class': 'logging.handlers.SysLogHandler', 'formatter': 'simple', 'address': LOGSERVER, # LOGSERVER = ("logs.papertrailapp.com", 14526) }, 'logfile': { 'level':'INFO', 'class':'logging.handlers.RotatingFileHandler', 'filename':'/opt/webadmin/cloud/logfile.log', 'maxBytes': 1024, 'backupCount': 5, 'formatter': 'simple' },

},
'loggers': {
    'one':{
        'handlers': ['syslog'],
        'level': 'DEBUG',
    },
}

}

Szóval:

  • Megmondja, hogy a beállítást a ’dictConfig version 1’ formátumban írták. (Jelenleg más verzió nincs, kompatibilitási okokból szerepel)
  • Az összes eddigi log beállítást letiltja.
  • Nos, itt következik a formatterek leírása

    • Melyből jelen példában egy van, s ’simple’ névre hallgat. A ’format’ sorban leírom az üzenet megjelenését a logban (jelen példában: aktuális_idő szintje <log>_: üzenet), alatta pedig az idő megjelenését.
  • https://docs.djangoproject.com/en/dev/releases/1.4/#request-exceptions-are-now-always-logged

  • S definiálok két handlert:

    • http://docs.python.org/2/library/logging.handlers.html#sysloghandler
    • http://docs.python.org/2/library/logging.handlers.html#rotatingfilehandler
  • Végül, de nem utolsó sorban, pedig a loggerek. Ebből csak egy áll fent példának, mégpedig:[BR <BR>_]Ami a one nevű loggerel hívott log üzeneteket a syslog handler felé továbbítja, amennyiben az eléri a DEBUG szintet. Amennyiben több handler felé szeretnénk továbbítani egy-egy üzenetet, akkor a szögletes zárójelen belül, vesszővel elválasztva kell felsorolni a handlereket.

Megjegyzés

https://papertrailapp.com/ - csak hogy ne felejtődjön el, online log management

  Clone repository
  • Bme net
  • Beegf
  • Buildbot
  • Circledevelopment
  • Codingstyle
  • Csomagforrasbol
  • Delopmentstyle
  • Devenv
  • Ervekamienkmellett
  • Felhasznaloifeltetelek
  • Guestlinux
  • Guesttelepites
  • Guestwindows7
  • Iptartomanyok
  • Kvota
More Pages
×

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.