Sida 1 av 1

Använda modulen 'logging' i python

Postat: 06 jul 2007, 16:16
av Victor
Hej igen, nu kommer jag med en (förhoppningsvis inte för svår) fråga igen :)

Jag är riktigt kass på att läsa manualer och så, förstår dem inte :S Men nu är det så att jag vill kunna utnyttja en Logg-funktion och jag hittade modulen Logging som verkar lovande. Det jag vill göra är att på ett smidigt sätt spara felmedelande (som jag själv skriver) i en .log/.txt fil som man sedan kan läsa av för att se vad för problem som uppstod under körningen men som inte var så 'allvarliga' så att det inte kunde fortsätta.

Så, är det någon som känner sig bekant med modulen Loggin (i Python) som kanske skulle kunna hjälpa mig? Eller är det någon som kan tyda manualen och visa hur man ska gå tillväga?

Här är länk till (tror ja) officiella manualen: http://docs.python.org/lib/module-logging.html

Med jättestora varma sommarhälsningar /Victor

SV: Använda modulen 'logging' i python

Postat: 06 jul 2007, 16:36
av DrMegahertz
Hinner inte skriva ner en vägledning själv då jag ska iväg och gratta min morfar  ;D

Men här verkar det finnas ett exempel som du kan studera och leka lite med;
http://docs.python.org/lib/node407.html

SV: Använda modulen 'logging' i python

Postat: 09 jul 2007, 16:11
av Victor
Tackar! Funkar utmärkt!

Men nu när jag lekt lite med det och tänkte att jag skulle implementera det i mitt lite störe script så kom jag att tänka på hur och varför jag ska använda en logg som sparar till en fil.

Vad ska jag spara i filen, vad är viktigt (bara fel, eller hela proceduren) och vad ska jag sen ha loggen till?

lite små funderingar som jag kan tänka mig är lite individuellt men vad anser du/ni?

SV: Använda modulen 'logging' i python

Postat: 09 jul 2007, 20:04
av Lars
Det finurliga med Pythons logging är ju att du i skriptet kan logga precis allt (DEBUG, WARNING, ERROR o.s.v), men sedan kan du på ett ställe ange hur mycket du vill spara i filen. Medan du utvecklar programmet kan det vara bra att logga allt, men sedan när allt fungerar som det ska kan du ändra på ett ställe så att endast ERROR loggas. Du kan ju låta detta vara en inställning som användaren kan påverka.

Om det hela ska köra som root så är ju /var/log/ ett lämpligt ställe, annars får det väl bli i hemkatalogen någonstans. Eller så kan du använda SysLogHandler så hamnar det där ändå. RotatingFileHandler har jag använt en del, väldigt smidigt.

Tänk på att loggen helst ska kunna användas för felsökning, så att du kan gå tillbaka och se när felet uppstod och vad ditt program gjorde just då.

SV: Använda modulen 'logging' i python

Postat: 09 jul 2007, 21:19
av Victor
OKej, tack! Men om jag kör "Test Driven development", alltså jag skapar testfall hela tiden innan jag skapar den "verkliga" modulen - behöver jag då loggning?

SV: Använda modulen 'logging' i python

Postat: 09 jul 2007, 21:34
av Lars
Det beror väl på. Loggade fel behöver ju inte bero på programmeringsfel, vanligare är kanske att det beror på fel i indata. Program som körs interaktivt behöver väl knappast loggning heller, det är mest sådant som körs i bakgrunden som behöver ett sätt att rapportera fel på.

SV: Använda modulen 'logging' i python

Postat: 09 jul 2007, 21:39
av Victor
Okej.. Men mitt program är ju interaktivt (terminalen) så då behövs det kanske inte en loggfil..(?)

SV: Använda modulen 'logging' i python

Postat: 12 jul 2007, 23:26
av Galgalid
nope, skulle inte tro det :)