Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: tietty määrä rivejä lokitiedostossa?

hmmp [27.01.2007 00:23:15]

#

Tämä voi kuulostaa triviaalilta, mutta ei mielestäni ole sitä.. tai sitten en vain osaa. ;-) Eli pitäisi saada tallennettua tiedostoon yksi uusi rivi siten, että tiedostossa on vain tietty maksimimäärä rivejä. Jos rivimäärä tulee täyteen, poistetaan tiedoston ensimmäinen rivi, jonka jälkeen lisätään loppuun uusi rivi.

Homma pitäisi hoitua nopeasti, koska kyse on laajemman ohjelman lokitiedostosta, eikä sen käsittely saisi viedä aikaa tärkeämmiltä asioilta. Maksimirivimäärän ideana on, ettei lokitiedosto veny mahdottoman pitkäksi.

File()-funktiota käyttäen homma hoituu tietysti helposti, mutta kaipaisin vähän nopeampaa ratkaisua. Eli en halua, että monisatarivinen tiedosto luetaan jokaisen pienen toiminnon yhteydessä arrayksi. Riittäisi siis, että jos rivimäärä on maksimissa, poistetaan eka rivi ja lisätään sitten loppuun uusi rivi.

Varsinainen ongelma on rivien laskeminen ilman, että käydään koko tiedostoa läpi. Onko edes mahdollista? Muuten tiedoston käsittelyssä ei ole minulla ongelmia.

Valmista ratkaisua en tarvitse, mutta olisiko jotain vinkkiä, miten tämä kannattaa hoitaa?

Antti Laaksonen [27.01.2007 10:18:03]

#

Rivien määrää ei voi laskea käymättä koko tiedostoa läpi, sillä jos yhdenkin merkin sivuuttaa, juuri se saattaa olla rivinvaihto. Muutenkin tiedoston käsittely kuvaamallasi tavalla voi olla hieman ongelmallista. Minä varmaan tyytyisin esim. kirjoittamaan logimerkinnät joka päivä eri tiedostoon. Tällöin on myös helppoa säilyttää tallessa vaikkapa logit viimeisen viikon ajalta.

Mika9 [27.01.2007 11:01:21]

#

Onnistuisiko, että alussa täyttäisit joka rivin "nollilla" ja sitten vain aina poistetttaisiin ensimmäinen rivi ja lisättäisiin loppuun uusi.
Tällöinhän rivimäärä pysyy vakiona ;).

ajv [27.01.2007 14:51:11]

#

Jos ei ole tilanpuutteesta kiinni, niin nimeä lokitiedostot esim. viikon mukaan. Jos aina lisäät yhden rivin ja poistat toisen, niin hidasta se tulee kuitenkin olemaan.

hmmp [27.01.2007 16:30:13]

#

Kiitos vastauksista!

Koska nopeus tosiaan ratkaisee, päädyn luultavasti nimeämään lokitiedostot kuukauden tai viikon mukaan ja niihin saa sitten kertyä niin paljon rivejä kuin vain tulee.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta