I'm using Log::Log4perl::Appender::DBI and I have a few end-user
suggestions to make.
I have a significant slab of existing Log::Log4perl code which uses
variable number of arguments like this:
Log::Log4perl -> get_logger() -> debug("Parsing start"):
...
Log::Log4perl -> get_logger() -> debug("Done, ", $error_count, "
errors.");
Using this sort of code with Log::Log4perl::Appender::DBI the way it's
currently suggested/recommended by the perldoc (prepared statements, '?'
placeholders and warp_message=0) is presently a poor experience, because
the number of placeholders is variable. At the moment this means most
of my DBI inserts were failing silently and I had to uncomment the
"warn" on line 138 of Log::Log4perl::Appender::DBI to find out what was
going wrong (which is rather unfortunate.)
I think it would be better to do something like this as a default in the
perldoc example (ie. without warp_message, and %m explicitly specified
as a parameter)
log4perl.appender.DBLog = Log::Log4perl::Appender::DBI
log4perl.appender.DBLog.datasource = DBI:mysql:database=log;host=localhost
log4perl.appender.DBLog.username = user
log4perl.appender.DBLog.password = pass
log4perl.appender.DBLog.sql = insert into cc3 (timestamp, severity,
source, source_line, host, caller, file, message) values
(unix_timestamp(), ?, ?, ?, ?, ?, ?, ?);
log4perl.appender.DBLog.params.1 = %p
log4perl.appender.DBLog.params.2 = %X{source}
log4perl.appender.DBLog.params.3 = %X{source-line}
log4perl.appender.DBLog.params.4 = %H
log4perl.appender.DBLog.params.5 = %M
log4perl.appender.DBLog.params.6 = +%L %F
log4perl.appender.DBLog.params.7 = %m
log4perl.appender.DBLog.usePreparedStmt = 1
log4perl.appender.DBLog.layout = Log::Log4perl::Layout::NoopLayout
The existing example could then be included in the perldoc under a
section entitled ("How to get access to individual arguments to debug(),
warn() etc.")
But it's a great class nevertheless :)
Thanks,
A.
--
Adrian Corston
Support Engineer
YourAmigo
IMPORTANT - This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information in which case neither is intended to be waived. YourAmigo retains ownership of all copyright, trade secrets and other intellectual property rights in the email and attachments. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please notify us and remove it from your system. It is your responsibility to check any attachments for viruses and defects before opening or sending them on. YourAmigo collects personal information to provide and market our services. For more information about use, disclosure and access, see our privacy policy at http://www.youramigo.com
|