home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 2004 December / PCpro_2004_12.ISO / files / webserver / tsw / TSW_3.4.0.exe / Apache2 / perl / FileAppender.pm < prev    next >
Encoding:
Perl POD Document  |  2003-01-14  |  2.2 KB  |  92 lines

  1. package Log::Log4perl::JavaMap::FileAppender;
  2.  
  3. use Carp;
  4. use strict;
  5. use Log::Dispatch::File;
  6.  
  7.  
  8. sub new {
  9.     my ($class, $appender_name, $data) = @_;
  10.     my $stderr;
  11.  
  12.     my $filename =  $data->{File}{value} || 
  13.                 $data->{filename}{value} || 
  14.                 die "'File' not supplied for appender '$appender_name', required for a '$data->{value}'\n";
  15.  
  16.     my $mode;
  17.     if (defined($data->{Append}{value})){
  18.         if (lc $data->{Append}{value} eq 'true' || $data->{Append}{value} == 1){
  19.             $mode = 'append';
  20.         }elsif (lc $data->{Append}{value} eq 'false' || $data->{Append}{value} == 0) {
  21.             $mode = 'write';
  22.         }elsif($data->{Append} =~ /^(write|append)$/){
  23.             $mode = $data->{Append}
  24.         }else{
  25.             die "'$data->{Append}' is not a legal value for Append for appender '$appender_name', '$data->{value}'\n";
  26.         }
  27.     }else{
  28.         $mode = 'append';
  29.     }
  30.  
  31.     my $autoflush;
  32.     if (defined($data->{BufferedIO}{value})){
  33.         if (lc $data->{BufferedIO}{value} eq 'true' || $data->{BufferedIO}{value}){
  34.             $autoflush = 1;
  35.         }elsif (lc $data->{BufferedIO}{value} eq 'true' || ! $data->{BufferedIO}{value}) {
  36.             $autoflush = 0;
  37.         }else{
  38.             die "'$data->{BufferedIO}' is not a legal value for BufferedIO for appender '$appender_name', '$data->{value}'\n";
  39.         }
  40.     }else{
  41.         $autoflush = 1;
  42.     }
  43.  
  44.  
  45.     return Log::Log4perl::Appender->new("Log::Dispatch::File",
  46.         name      => $appender_name,
  47.         filename  => $filename,
  48.         mode      => $mode,
  49.         autoflush => $autoflush,
  50.     );
  51. }
  52.  
  53. 1;
  54.  
  55. =head1 NAME
  56.  
  57. Log::Log4perl::JavaMap::FileAppender - wraps Log::Dispatch::File
  58.  
  59. =head1 SYNOPSIS
  60.  
  61.  
  62. =head1 DESCRIPTION
  63.  
  64. Possible config properties for log4j ConsoleAppender are 
  65.  
  66.     File
  67.     Append      "true|false|1|0" default=true
  68.     BufferedIO  "true|false|1|0" default=false (i.e. autoflush is on)
  69.  
  70. Possible config properties for Log::Dispatch::File are
  71.  
  72.     filename
  73.     mode  "write|append"
  74.     autoflush 0|1
  75.  
  76. =head1 AUTHORS
  77.  
  78.     Kevin Goess, <cpan@goess.org> 
  79.     Mike Schilli, <m@perlmeister.com>
  80.     
  81.     June, 2002
  82.  
  83. =head1 SEE ALSO
  84.  
  85. http://jakarta.apache.org/log4j/docs/
  86.  
  87. Log::Log4perl::Javamap
  88.  
  89. Log::Dispatch::File
  90.  
  91. =cut
  92.