<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">&gt; On 6/5/07, Alexander Clouter &lt;<a href="mailto:ac56@soas.ac.uk">ac56@soas.ac.uk</a>&gt; wrote:<br>&gt; &gt;
<br>&gt; &gt;If you are logging to a file and having Perl munch on a log file you can<br>&gt; &gt;remove the perl script and pipe from the whole works.&nbsp;&nbsp;syslog-ng can be<br>&gt; &gt;configured to read in directly a log file; it effectively does a &#39;tail -f&#39;
<br>&gt; &gt;on the file.<br>&gt;<br>&gt; Except for cases where you need the Perl script to post-process the log file<br>&gt; to produce a normalized or custom syslog message format.<br>&gt;<br>Agreed, however a better design would be:
<br><br>&lt;Log&gt; ---&gt; &lt;Perl&gt; ---&gt; &lt;Log2&gt;<br><br>&lt;Log2&gt; --[using &#39;tail&#39; function]--&gt; syslog-ng -&gt; syslog-ng<br><br>These would be disconnected and you would not run into any nasty problems.
<br>Another advantage being that if the perl code soaks up the CPU cycles and the<br>logging is not urgent (needed at the final destination ASAP) you could nice<br>down the priority of the process to prevent it stomping in on syslog-ng&#39;s
<br>performance.</blockquote>
<div>&nbsp;</div>
<div>But that scenario only supports logs that are &quot;syslog friendly&quot;.&nbsp; If you have to do any kind of normalization or post-processing or dealing with multi-line records in a log file, you have to use a post-processing process such as Perl.&nbsp; Not all logs have human-friendly readable text and the post-processing Perl script can translate the log record into something more useful.
</div>
<div>&nbsp;</div>
<div>The CPU cycles required by Perl parsing is minimal and is a common myth that Perl is a CPU hog.&nbsp; I have Perl scripts processing billions of log events per week.</div><br>&nbsp;</div>