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
|