Changeset 3416

Show
Ignore:
Timestamp:
03/13/10 13:10:50 (2 years ago)
Author:
steve.schnepp
Message:

use STDERR if cgi cannot open logfile (closes #874)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/master/_bin/munin-cgi-graph.in

    r3411 r3416  
    5454 
    5555my $log = new IO::Handle; 
     56my $logfile; 
    5657my $scale = "day"; 
    5758my $host  = ""; 
     
    6869    my $path = $ENV{PATH_INFO} || ""; 
    6970    ($dom, $host, $serv, $scale) = $path =~ m#^/(.*)/([^/]+)/(\w+)-([\w=,]+)\.png#; ## avoid bug in vim 
     71 
     72    ::logger("asked for ($dom, $host, $serv, $scale)"); 
    7073 
    7174    my $pinpoint; 
     
    120123                $scale_options = $TIMES{$scale}; 
    121124        } 
    122         next unless draw_graph_or_complain($dom, $host, $serv, $scale_options, $filename, "$config->{logdir}/munin-cgi-graph.log"); 
     125        next unless draw_graph_or_complain($dom, $host, $serv, $scale_options, $filename); 
    123126    } 
    124127 
     
    199202  else 
    200203  { 
    201           if (defined $config->{logdir}
     204          if (defined $config->{logdir} && ! $logfile
    202205          { 
    203                   if (open ($log, '>>', "$config->{logdir}/munin-cgi-graph.log")) 
     206                  $logfile = $config->{logdir}. "/munin-cgi-graph.log"; 
     207                  if (open ($log, '>>', $logfile)) 
    204208                  { 
    205209                          print $log "$now - $comment\n"; 
     
    210214iting: $!"; 
    211215                          print STDERR "$now - $comment\n"; 
     216                          $logfile = "-:2"; # Set the logfile to STDERR 
    212217                  } 
    213218          } 
     
    289294 
    290295    my $filename = shift; 
    291     my $logfile = shift; 
    292296 
    293297    # remove old file if present 
  • trunk/master/lib/Munin/Master/GraphOld.pm

    r3414 r3416  
    254254    $log_file = $1 if ($log_file && $log_file =~ m/(.*)/); 
    255255 
    256     logger_open($config->{'logdir'}, $log_file); 
     256    if($log_file && $log_file eq "-:2") { 
     257            # Logging to STDERR 
     258            logger_open_stderr(); 
     259    } else { 
     260            logger_open($config->{'logdir'}, $log_file); 
     261    } 
    257262    logger_debug() if $DEBUG; 
    258263     
  • trunk/master/lib/Munin/Master/Logger.pm

    r3404 r3416  
    6464use Log::Log4perl qw(:easy); 
    6565 
    66 our @EXPORT = qw(logger_open logger_debug logger_level logger); 
     66our @EXPORT = qw(logger_open logger_open_stderr logger_debug logger_level logger); 
    6767 
    6868# Early open of the log.  Warning and more urgent messages will go to 
     
    8181        print STDERR join(" ",@_); 
    8282    } 
     83} 
     84 
     85sub logger_open_stderr { 
     86    if (!$logopened) { 
     87        # I'm a bit uncertain about the :utf8 bit. 
     88        Log::Log4perl->easy_init( { level    => $INFO, 
     89                                    file     => ":utf8>&STDERR" } ); 
     90        $logopened = 1; 
     91    } 
     92 
     93    get_logger('')->info("Opened log file"); 
     94 
     95    # Get perl warnings into the log files 
     96    $SIG{__WARN__} = \&_warn_catcher; 
     97 
    8398} 
    8499