Get Log::Dispatch::FileRotate from CPAN and you're all set:
use Log::Dispatch::FileRotate; my $file = Log::Dispatch::FileRotate->new( name => 'my_rotator', min_level => 'info', filename => 'somefile.log', mode => 'append' , size => 1024*1024, max => 6); while(<>) { $file->log(level => 'info', message => $_); }
This keeps writing to somefile.log until it's 1MB. Then it will roll it over to somefile.log.1 and continue writing to a new somefile.log -- all transaction-safe. The 'max' parameter specifies the maximum number of rolled-over log files that you want to keep around this way until it starts throwing them away to avoid filling up the disc. It can also perform time-based rollovers (e.g. at midnight).

This should get you what you need -- but another thought: if you wanted to do it the Right Way (tm), (and you had the luxury of being able to modify your web application) you'd have your application not write to STDOUT, but use something like Log::Log4perl -- this way you could configure any type of log destination just by modifying a configuration file: rotating appenders, database appenders, email appenders, you name it.

In reply to Re: Log rotating filter. by Anonymous Monk
in thread Log rotating filter. by blue_cowdawg

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.