PROXY  WHOIS  RQUOTE  TEXTS  SOFT  FOREX  BBOARD
 Music  Philosophy  Code  Literature  Russian

= ROOT|Technical|Code_Examples|Perl|site_perl|Authen|Simple|Log.pm =

page 1 of 2



package Authen::Simple::Log;

use strict;
use warnings;

use IO::Handle;

our $SINGLETON = bless( {}, __PACKAGE__ );

sub new   { $SINGLETON }
sub debug { }
sub error { shift->_log( 'error', @_ ) }
sub info  { }
sub warn  { shift->_log( 'warn',  @_ ) if $^W }

sub _caller {
    my $self  = shift;
    my $frame = 0;

    $frame++ until ( caller($frame) ne __PACKAGE__ );

    return scalar caller($frame);
}

sub _format {
    my ( $self, $level, @message ) = @_;
    return sprintf( "[%s] [%s] [%s] %s\n", scalar localtime(), $level, $self->_caller, "@message" );
}

sub _output {
    my $self = shift;
    STDERR->print(@_);
    STDERR->flush;
}

sub _log {
    my $self    = shift;
    my $message = $self->_format(@_);
    $self->_output($message);
}

1;

__END__

=head1 NAME

Authen::Simple::Log - Simple log class

=head1 SYNOPSIS

    $log = Authen::Simple::Log->new;
    $log->error($message);
    $log->warn($message);

=head1 DESCRIPTION

Default log class for Authen::Simple

=head1 METHODS

=over 4

=item * new

Constructor, takes no parameters.

=item * debug (@)

Does nothing.

=item * error (@)

Logs a error message to C<STDERR>.

=item * info (@)

Does nothing.

=item * warn (@)

Logs a warning message to C<STDERR> if C<$^W> is true.

=back

=head1 SEE ALSO

L<Authen::Simple>

L<Authen::Simple::Adapter>

=head1 AUTHOR

Christian Hansen C<ch@ngmedia.com>

=head1 COPYRIGHT

This program is free software, you can redistribute it and/or modify 
it under the same terms as Perl itself.

=1=

= PAGE 1 = NEXT > |2

UP TO ROOT | UP TO DIR

Google
 


E-mail Facebook Google Digg del.icio.us BlinkList Fark Furl Ma.gnolia Netscape NewsVine Reddit Slashdot Spurl StumbleUpon Technorati YahooMyWeb LiveJournal Blogmarks TwitThis Live News2.ru BobrDobr.ru Memori.ru MoeMesto.ru

0.00598001 wallclock secs ( 0.01 usr + 0.00 sys = 0.01 CPU)