django-Peavy är en Django app för att förbättra din Django ansökan loggning.
Installation
Börja med Django 1.3 eller högre; Peavy är avsedd att användas med den nya loggningskonfiguration första tillgängliga i den versionen.
För att installera, kör helt enkelt:
PiP installera django-Peavy
Konfiguration
& Nbsp; Lägg Peavy till din inställning INSTALLED_APPS.
& Nbsp; För att undvika att störa din ansökan databas transaktioner, Peavy loggar till sin egen databas som standard. På grund av South s problem med flera databaser, är det enklaste sättet att göra detta arbete för att skapa en andra databas strof i settings.DATABASES, som speglar standardinställningarna under ett annat namn, t.ex:
& Nbsp; DATABASER = {
& Nbsp; 'default': {
& Nbsp; 'MOTOR': 'django.db.backends.postgresql_psycopg2 ",
& Nbsp; 'NAMN': 'defaultdb ",
& Nbsp; "användare": "dbuser",
& Nbsp; 'LÖSENORD': 'DBPassword,
& Nbsp; 'TEST_CHARSET': 'UTF8 "
& Nbsp;},
& Nbsp; 'Peavy': {
& Nbsp; 'MOTOR': 'django.db.backends.postgresql_psycopg2 ",
& Nbsp; 'NAMN': 'defaultdb ",
& Nbsp; "användare": "dbuser",
& Nbsp; 'LÖSENORD': 'DBPassword,
& Nbsp; 'TEST_CHARSET': 'UTF8 "
& Nbsp;}
& Nbsp;}
& Nbsp; Detta bör få dina tabeller skapade / migrerade ordentligt, och låt Peavy att arbeta med sin egen anslutning till databasen. När det begår logga poster, kommer din ansökan transaktioner inte påverkas.
& Nbsp; Om du vill sätta Peavy i en verkligt separat databas, vill du förmodligen avstå South migra för det, på grund av vissa problem Södra har med flera databaser. Du kan berätta Södra att ignorera det genom att lägga detta till dina inställningar:
& Nbsp; SOUTH_MIGRATION_MODULES = {
& Nbsp; 'Peavy': 'ignorera ",
& Nbsp;}
& Nbsp; I det här fallet kommer du bara skapa Peavy tabeller med SyncDB.
& Nbsp; Lägg till Peavy databas routern:
& Nbsp; DATABASE_ROUTERS = ['peavy.routers.DjangoDBRouter']
& Nbsp; Lägg loggningskonfiguration. Till exempel:
& Nbsp; LOGGA = {
& Nbsp; 'version': 1,
& Nbsp; "disable_existing_loggers": Sant,
& nbsp; "formate": {
& Nbsp; 'default': {
& Nbsp; "format": "[% (asctime) s% (namn) s% (levelname) s]% (meddelande) s '
& Nbsp;},
& Nbsp; "grundläggande": {
& Nbsp; "format": "[% (asctime) s% (UUID) s% (user) s% (namn) s% (levelname) s]% (meddelande) s '
& Nbsp;},
& Nbsp; 'meta': {
& Nbsp; "format": "[% (asctime) s% (client_ip) s% (UUID) s% (user) s% (namn) s% (levelname) s]% (meddelande) s '
& Nbsp;},
& Nbsp;},
& nbsp; "filter": {
& Nbsp; "grundläggande": {
& Nbsp; '()': 'peavy.filters.BasicFilter ",
& Nbsp;},
& Nbsp; 'meta': {
& Nbsp; '()': 'peavy.filters.MetaFilter ",
& Nbsp;}
& Nbsp;},
& nbsp; "hanterare": {
& Nbsp; 'null': {
& Nbsp; "nivå": "DEBUG",
& Nbsp; "klass": "django.utils.log.NullHandler",
& Nbsp;},
& Nbsp; 'konsol': {
& Nbsp; "nivå": "DEBUG",
& Nbsp; "klass": "logging.StreamHandler",
& Nbsp; "filter": ["grundläggande", "meta"],
& Nbsp; 'formaterings': "grundläggande"
& Nbsp;},
& Nbsp; 'mail_admins': {
& Nbsp; "nivå": "ERROR",
& Nbsp; "klass": "peavy.handlers.AdminEmailHandler",
& Nbsp; "filter": ["grundläggande", "meta"],
& Nbsp; 'formaterings': "meta"
& Nbsp;},
& Nbsp; 'Peavy': {
& Nbsp; "nivå": "INFO",
& Nbsp; "klass": "peavy.handlers.DjangoDBHandler",
& Nbsp; "filter": ["grundläggande", "meta"],
& Nbsp; 'formaterings': "meta"
& Nbsp;}
& Nbsp;},
& nbsp; "loggers": {
& Nbsp; "django ': {
& Nbsp; "hanterare": ['null'],
& Nbsp; 'utbreda': Sant,
& Nbsp; "nivå": "INFO",
& Nbsp;},
& Nbsp; 'django.request': {
& Nbsp; "hanterare": ['Peavy', 'mail_admins'],
& Nbsp; "nivå": "ERROR",
& Nbsp; 'utbreda': Falskt,
& Nbsp;},
& Nbsp; 'mittpgm': {
& Nbsp; "hanterare": ["console", "Peavy '],
& Nbsp; "nivå": "DEBUG",
& Nbsp;}
& Nbsp;}
& Nbsp;}
& Nbsp; Lägg peavy.middleware.RequestLoggingMiddleware till MIDDLEWARE_CLASSES.
& Nbsp; Kör manage.py migrera för att skapa databastabeller, eller om du verkligen logga till en andra databas och har funktionshinder South migreringar för Peavy, kör manage.py SyncDB.
De två sista stegen kan hoppas över om du inte vill UI.
& Nbsp; Om så önskas, till peavy.urls till din URL-konfiguration för att få UI:
& Nbsp; urlpatterns + = mönster ('',
& Nbsp; (r '^ Peavy /', omfattar ("peavy.urls ')),
& Nbsp;)
& Nbsp; Kör manage.py collectstatic kopiera Peavy medier på plats.
Demo Ansökan
Peavy kommer med ett exempel program som visar hur du loggar med det, och låter dig kolla UI. Att köra den:
& Nbsp; Skapa en virtualenv för det, aktivera sedan virtualenv.
& Nbsp; Kopiera exemplet ansökan från din kopia av django-Peavy i virtualenv:
& Nbsp; rsync -av peavy_demo / $ VIRTUAL_ENV / peavy_demo /
& Nbsp; Installera sina krav med pip:
& Nbsp; pip installera -r $ VIRTUAL_ENV / peavy_demo / requirements.txt
& Nbsp; Ställ in PostgreSQL-databasen för att matcha Django inställningarna. Du kan naturligtvis använda en annan databas, men det har att stödja samtidiga transaktioner (så sqlite är ute), och du kommer att behöva justera inställningarna och installera adaptern själv.
& Nbsp; Justera PYTHON att plocka upp demo-app:
& Nbsp; Export PYTHON = $ VIRTUAL_ENV: $ PYTHON
& Nbsp; Ange DJANGO_SETTINGS_MODULE miljövariabeln:
& Nbsp; Export DJANGO_SETTINGS_MODULE = peavy_demo.settings
& Nbsp; Kör "django-admin SyncDB" för att befolka databasen och skapa en superanvändare.
& Nbsp; Kör "django-admin migrera" att skapa Peavy tabeller.
& Nbsp; Kör devserver:
django-admin.py runserver
& Nbsp; Bläddra till http:. // Localhost: 8000 / anger en film citat, kontrollera sedan loggning på http: // localhost: 8000 / Peavy /
Funktioner :
- Middleware att märka varje begäran med ett unikt ID.
- Loggning filter för att fånga förfrågan metadata som användaren, fjärr-IP, och rubriker.
- Loggning hanterare för:
- Fånga undantag information, inklusive en kopia av server felsida Django, i en databas.
- Skicka felmeddelanden till admins utan att avslöja känslig information som innehållet i request.POST.
- En databas router för att skicka loggposter till en separat databas.
- Ett enkelt användargränssnitt för att bläddra loggposter i databasen.
Krav :
- Python
- Django
Kommentarer hittades inte