Håller på att skapa en loggfil, det jag har i tanken nu är att den får inte bli hur stor som helst.. Låt säga att man har en maxgräns på 2 mb, hur ser man till att ta bort början (det äldsta i loggfilen)?
Har två allternativ som jag kan komma på:
alt1: lägger till datum på varje rad och varje gång man startar applikationen kollar man storleken och tar bort visst antal dagar med tillhörande rader.
alt2: kollar varje gång man startar hur stor filen är, om förstor ta bort säg en viss procent av maxstroleken.
Om allternativ två, kan man kolla hur mkt man läst med till exempel streamreader eller liknande?
Aja, någon som har en annan bra idé eller kommentar?
Japp, nu gör jag som så att jag har en streamreader till filen och tar emot denna med en streamwriter som skriver till en ny fil men igorerar första raden. Sedan kopierar jag den temporära filen till det gamla namnet och tar bort tempfilen. Detta fungerar men verkar "osmidigt". Finns det bättre sätt?
du kan connecta en datadapter eller command till en textfil, och använda textfilen precis som en databas, believe it or not :i .
Och du kan använda vanliga UPDATE och INSERT och SELECT satser för att query i textfilen också.
Men jag har inte riktigt fått det å funke :l
Får "kan inte hitta installerbar ISAM" problem..
i textfilen ska den första raden innehålla kolumninformation:
Logfiler bör man bara skriva till och inte ta bort något i, om du är rädd att filen skall bli förstor så borde du istället dela in din logfil i mer finmaskighet. Alltså kanske ha en logfil per år/månad/dag/timme eller vad som nu är logiskt för dig och den storlek som du vill ha på logfilen.
du kan sedan spara undan de gamla logfilerna någonstan när du inte längre vill ha dem, på det sättet bestämer du själv när loginformation skall försvinna. Med ditt sätt så kan informationen försvinna från logfilen innan du själv har haft nytta av dem
Jag håller med Gladh. Om någon bombar din logg och genererar 2mb loggdata så har din logg inte en aning om vad som hände innan det. Det bara smäller till och helt plötsligt har du ingen historik.
Dessutom ser jag stora svårigheter att föra en korrekt statistik om man raderar data ur sin logg. Näe, flytta loggarna alternativt komprimera dem runtime på servern så du verkligen har användning av dem.
Mitt loggschema ser till att logga precis varenda byte jag kan få tag i om användaren och besöket. Lite beroende på vilken applikation det gäller så har jag dessutom olika inställningar för hur ofta en ny logg skall genereras. På de mest trafikintensiva har jag en logg per timme, annars blir varje loggfil runt 80-100 MB. På andra har jag en loggfil per dag.
Visserligen, det beror ju på hur stor din sajt är. :)