Django-peavy ay isang Django app para sa pagpapabuti ng iyong Django application na pag-log.
Pag-install
Magsimula sa Django 1.3 o mas mataas; peavy ay nilayon para sa paggamit sa bagong configuration sa pag-log available unang in na bersyon.
Upang i-install, patakbuhin lamang:
buto ng bungang-kahoy-install Django-peavy
Configuration
& Nbsp; Magdagdag peavy sa iyong setting INSTALLED_APPS.
& Nbsp; Upang maiwasan ang nakakasagabal sa mga transaksyon sa database ng iyong application, peavy mga log sa kanyang sariling database sa pamamagitan ng default. Dahil sa mga isyu sa South na may maramihang mga database, ang pinakamadaling paraan upang gawin ito gumagana ay upang lumikha ng isang pangalawang database taludturan sa settings.DATABASES, na salamin ang default na mga setting sa ilalim ng ibang pangalan, hal:
& Nbsp; mga database = {
& Nbsp; 'default': {
& Nbsp; 'engine': 'django.db.backends.postgresql_psycopg2',
& Nbsp; 'NAME': 'defaultdb',
& Nbsp; 'USER': 'dbuser',
& Nbsp; 'PASSWORD': 'dbpassword,
'UTF8': 'TEST_CHARSET'; & nbsp
& Nbsp;},
& Nbsp; 'peavy': {
& Nbsp; 'engine': 'django.db.backends.postgresql_psycopg2',
& Nbsp; 'NAME': 'defaultdb',
& Nbsp; 'USER': 'dbuser',
& Nbsp; 'PASSWORD': 'dbpassword,
'UTF8': 'TEST_CHARSET'; & nbsp
& Nbsp;}
& Nbsp;}
& Nbsp; ito ay dapat makuha ang iyong mga talahanayan na nilikha / nai-migrate nang maayos, at payagan ang peavy upang gumana sa sarili nitong koneksyon sa database. Kapag ito gumawa mag-log entry, transaksyon ng iyong application ay hindi maaapektuhan.
& Nbsp; Kung mo nais na ilagay peavy sa isang tunay na hiwalay na database, malamang na gusto sa forego South paglilipat para dito, dahil sa mga problema sa South ay may maramihang mga database. Maaari mong sabihin sa South upang huwag pansinin ito sa pamamagitan ng pagdaragdag na ito sa iyong mga setting:
& Nbsp; SOUTH_MIGRATION_MODULES = {
& Nbsp; 'peavy': 'huwag pansinin',
& Nbsp;}
& Nbsp; Sa kasong ito, makakakita ka lang lumikha ng mga talahanayan peavy na may syncdb.
& Nbsp; Idagdag ang database peavy router:
& Nbsp; DATABASE_ROUTERS = ['peavy.routers.DjangoDBRouter']
& Nbsp; Idagdag ang configuration sa pag-log. Halimbawa:
& Nbsp; ng pag-log = {
& Nbsp; 'bersyon': 1,
& Nbsp; 'disable_existing_loggers': Totoo,
& Nbsp; 'formatters': {
& Nbsp; 'default': {
& Nbsp; 'format': '[% (asctime) s% (pangalan) s% (levelname) s]% (mensahe) s'
& Nbsp;},
& Nbsp; 'basic': {
& Nbsp; 'format': '[% (asctime) s% (uuid) s% (user) s% (pangalan) s% (levelname) s]% (mensahe) s'
& Nbsp;},
& Nbsp; 'meta': {
& Nbsp; 'format': '[% (asctime) s% (client_ip) s% (uuid) s% (user) s% (pangalan) s% (levelname) s]% (mensahe) s'
& Nbsp;},
& Nbsp;},
& Nbsp; 'filter': {
& Nbsp; 'basic': {
& Nbsp; '()': 'peavy.filters.BasicFilter',
& Nbsp;},
& Nbsp; 'meta': {
& Nbsp; '()': 'peavy.filters.MetaFilter',
& Nbsp;}
& Nbsp;},
& Nbsp; 'handler': {
& Nbsp; 'null': {
& Nbsp; 'antas': 'DEBUG',
& Nbsp; 'klase': 'django.utils.log.NullHandler',
& Nbsp;},
& Nbsp; 'console': {
& Nbsp; 'antas': 'DEBUG',
& Nbsp; 'klase': 'logging.StreamHandler',
& Nbsp; 'filter': ['basic', 'meta'],
& Nbsp; 'format': 'basic'
& Nbsp;},
& Nbsp; 'mail_admins': {
& Nbsp; 'antas': 'ERROR',
& Nbsp; 'klase': 'peavy.handlers.AdminEmailHandler',
& Nbsp; 'filter': ['basic', 'meta'],
& Nbsp; 'format': 'meta'
& Nbsp;},
& Nbsp; 'peavy': {
& Nbsp; 'antas': 'INFO',
& Nbsp; 'klase': 'peavy.handlers.DjangoDBHandler',
& Nbsp; 'filter': ['basic', 'meta'],
& Nbsp; 'format': 'meta'
& Nbsp;}
& Nbsp;},
& Nbsp; 'loggers': {
& Nbsp; 'Django': {
& Nbsp; 'handler': ['null'],
& Nbsp; 'palaganapin': Totoo,
& Nbsp; 'antas': 'INFO',
& Nbsp;},
& Nbsp; 'django.request': {
& Nbsp; 'handler': ['peavy', 'mail_admins'],
& Nbsp; 'antas': 'ERROR',
& Nbsp; 'palaganapin': False,
& Nbsp;},
& Nbsp; 'myapp': {
& Nbsp; 'handler': ['console', 'peavy'],
& Nbsp; 'antas': 'DEBUG',
& Nbsp;}
& Nbsp;}
& Nbsp;}
& Nbsp; Magdagdag peavy.middleware.RequestLoggingMiddleware sa MIDDLEWARE_CLASSES.
& Nbsp; Patakbuhin manage.py migrate upang lumikha ng mga talahanayan ng database, o kung ikaw talaga naka-log sa isang pangalawang database at ay hindi pinagana South paglilipat para sa peavy, patakbuhin manage.py syncdb.
Ang huling dalawang hakbang na maaari malampasan kung hindi mo nais ang UI.
& Nbsp; Kung ninanais, magdagdag ng peavy.urls sa iyong pagsasaayos URL upang makuha ang UI:
& Nbsp; urlpatterns + = pattern ('',
& Nbsp; (r '^ peavy /', isama ('peavy.urls')),
& Nbsp;)
& Nbsp; Patakbuhin manage.py collectstatic upang kopyahin media peavy ng sa lugar.
Demo Application
Peavy ay may isang halimbawa ng application na nagpapakita kung paano mag-log sa ito, at hinahayaan kang tingnan ang UI. Upang patakbuhin ito:
& Nbsp; Lumikha ng virtualenv para dito, pagkatapos ay i-activate ang virtualenv.
& Nbsp; Kopyahin ang halimbawa ng application mula sa iyong kopya ng Django-peavy sa virtualenv:
& Nbsp; rsync -av peavy_demo / $ VIRTUAL_ENV / peavy_demo /
& Nbsp; I-install ang mga kinakailangan nito sa buto ng bungang-kahoy:
& Nbsp; buto ng bungang-kahoy-install -r $ VIRTUAL_ENV / peavy_demo / requirements.txt
& Nbsp; I-set up ang PostgreSQL database upang tumugma sa mga setting ng Django. Maaari mong siyempre gamitin ang isa pang database, ngunit ito ay upang suportahan ang sabay-sabay na mga transaksyon (kaya SQLite ay out), at magkakaroon ka upang ayusin ang mga setting at i-install ang adapter sa iyong sarili.
& Nbsp; Ayusin ang iyong mga PYTHONPATH upang kuhanin ang demo na app:
& Nbsp; export PYTHONPATH = $ VIRTUAL_ENV: $ PYTHONPATH
& Nbsp; Itakda ang DJANGO_SETTINGS_MODULE environment variable:
& Nbsp; export DJANGO_SETTINGS_MODULE = peavy_demo.settings
& Nbsp; Run 'Django-admin syncdb' upang punan ang tipunan ng datos at lumikha ng superuser.
& Nbsp; Run 'Django-admin-migrate' upang lumikha ng mga talahanayan ng peavy.
& Nbsp; Patakbuhin ang devserver:
django-admin.py runserver
& Nbsp; Mag-browse sa http:. // Localhost: 8000 /, magpasok ng isang pelikula quote, pagkatapos ay i-check ang pag-log sa http: // localhost: 8000 / peavy /
Mga Tampok :
- Middleware i-tag ang bawat kahilingan na may isang natatanging ID.
- Pag-log ng mga filter upang makuha ang kahilingan metadata tulad ng gumagamit, remote IP, at header.
- Pag-log tagapangasiwa para sa:
- Kinukunan ang impormasyon pagbubukod, kabilang ang isang kopya ng mga pahina ng error ng server Django, sa isang database.
- Pagpapadala ng mga notification error sa mga admin nang hindi ibinubunyag ang sensitibong impormasyon tulad ng mga nilalaman ng request.POST.
- Ang isang database router para sa pagpapadala ng mga talaan log sa isang hiwalay na database.
- Ang isang simpleng interface ng user para sa pag-browse talaan log sa database.
Mga Kinakailangan :
- Python
- Django
Mga Komento hindi natagpuan