From: Chris W. <la...@us...> - 2005-02-25 00:06:10
|
Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Log In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9366/OpenInteract2/Log Modified Files: OIAppender.pm Log Message: OIN-35: use new OI2::ErrorStorage to actually save the error (coming soon...) Index: OIAppender.pm =================================================================== RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Log/OIAppender.pm,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** OIAppender.pm 17 Feb 2004 04:30:20 -0000 1.3 --- OIAppender.pm 25 Feb 2005 00:05:58 -0000 1.4 *************** *** 1,6 **** --- 1,12 ---- package OpenInteract2::Log::OIAppender; + # $Id$ + use strict; + use DateTime; use OpenInteract2::Context qw( CTX ); + use OpenInteract2::ErrorStorage; + + $OpenInteract2::Log::OIAppender::VERSION = sprintf("%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/); sub new { *************** *** 13,41 **** my ( $m_category, $m_class, $m_line, $m_msg ) = split /\s*&&\s*/, $params{message}; ! my $req = CTX->request; my %request_info = (); if ( $req ) { ! %request_info = ( user_id => $req->auth_user->id, ! session_id => $req->session->{_session_id}, ! browser => $req->user_agent, ! referer => $req->referer, ! url => $req->url_absolute ); ! } ! else { ! %request_info = ( user_id => undef, ! session_id => undef, ! browser => undef, ! referer => undef, ! url => 'n/a' ); } eval { ! my $error_class = CTX->lookup_object( 'error_object' ); ! my $err = $error_class->new({ category => $m_category, ! loc_class => $m_class, ! loc_line => $m_line, ! message => $m_msg, ! error_time => DateTime->now, ! %request_info }); ! $err->save(); }; if ( $@ ) { --- 19,51 ---- my ( $m_category, $m_class, $m_line, $m_msg ) = split /\s*&&\s*/, $params{message}; ! ! # DO NOT log messages from OI2::ErrorStorage, otherwise we'll get ! # in an infinite loop... ! return if ( $m_class eq 'OpenInteract2::ErrorStorage' ); ! ! $self->{store} = OpenInteract2::ErrorStorage->new(); my %request_info = (); + my $req = ( CTX ) ? CTX->request : undef; if ( $req ) { ! my $user = $req->auth_user; ! %request_info = ( ! host => $req->remote_host, ! user_id => scalar( $user->id ), ! username => $user->login_name, ! session => $req->session->{_session_id}, ! browser => $req->user_agent, ! referer => $req->referer, ! url => $req->url_absolute ! ); } eval { ! $self->{store}->save({ ! category => $m_category, ! class => $m_class, ! line => $m_line, ! message => $m_msg, ! time => ( CTX ) ? CTX->create_date() : DateTime->now(), ! %request_info, ! }) }; if ( $@ ) { *************** *** 55,72 **** # Define the appender -- any messages with ERROR or FATAL levels will ! # have an object created in the error log ! log4perl.appender.OIAppender = OpenInteract2::Log::OIAppender ! log4perl.appender.OIAppender.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.OIAppender.layout.ConversionPattern = %c && %C && %L && %m ! log4perl.appender.OIAppender.Threshold = ERROR # Add the appender to the root category ! log4perl.logger = FATAL, FileAppender, OIAppender =head1 DESCRIPTION ! Capture certain errors for use by the OI error log. =head1 COPYRIGHT --- 65,85 ---- # Define the appender -- any messages with ERROR or FATAL levels will ! # have an object created in the error log -- we depend on this ! # ConversionPattern! ! log4perl.appender.OIAppender = OpenInteract2::Log::OIAppender log4perl.appender.OIAppender.layout.ConversionPattern = %c && %C && %L && %m ! log4perl.appender.OIAppender.layout = Log::Log4perl::Layout::PatternLayout ! log4perl.appender.OIAppender.Threshold = ERROR # Add the appender to the root category ! log4perl.logger = ERROR, FileAppender, OIAppender =head1 DESCRIPTION ! Capture certain errors for use by the OI error log. These errors get ! serialized to disk -- see L<OpenInteract2::ErrorStorage> and ! L<OpenInteract2::Error> for details. =head1 COPYRIGHT |