[ic] Pushing Error Log into MySQL?
ethan at endpoint.com
Thu Jul 28 11:32:45 EDT 2005
Jason Korkin wrote:
>>I'm not sure it would be that big of a job. Since most every write to
>>the error.log is through the logError subroutine in Vend::Util, the
>>logError subroutine could be modified to redirect the errors to a
>>database table instead of a file.
>I agree and I've started writing a modification to dump the errors into a db
>table rather than the flat file.
>Once I get it working, I'll post the modified code to the list as I'm sure
>that others would probably like to utilize it as well for automatic
>generation of bug reports, etc. which is my ultimate goal.
Whether or not it can be done, is putting the error log directly into a
database really all that desirable in the long run?
For one, which component is more likely to cause problems, and thus be
the source of the very errors you wish to log? Your file system, or
Ideally, both are just fine, of course. :)
Do you really want an error message to trigger what amounts to a
relatively expensive event (a database write)? Consider that error
messages can be caused by as little as carelessly mistyping a column
name in an [sql-param ...] tag, and thus occur many times on a single
page. I would be extremely hesitant to impose this overhead on any
system. One mistake on a busy page on a busy site and your database
The error log files aren't necessarily the most readable things in the
world, particular if the error message spans multiple lines. However,
consider that every new message begins with an identifiable string, and
all subsequent lines within that same message are prefixed with an ">".
What's the matter with pulling messages into the database in an offline
fashion? These logs cry out for Perl parsing.
I don't at all dispute the notion that having log data in a database
might be helpful. I would suggest, however, that just writing a script
for pulling the logs into your DB in an offline process is ultimately
preferable to the direct-to-database logging, as it avoids increasing
the burden on your server when errors occur (no way would I want to use
direct-to-database logging with PostgreSQL, for one, but I imagine
writes on InnoDB tables in MySQL are slower than writes to MyISAM too).
A script for doing this might be more generically useful for the all.
Just offering some contrary opinions for your consideration; certainly
no harm meant by them. :)
End Point Corporation
ethan at endpoint.com
More information about the interchange-users