Log-Info

 view release on metacpan or  search on metacpan

lib/Log/Info.pm  view on Meta::CPAN

  croak "Channel does not exist: $chan\n"
    unless exists $channel{$chan};
  croak sprintf("Translator for channel %s not a subroutine: %s\n",
                $chan, ref $trans || $trans)
    unless UNIVERSAL::isa ($trans, 'CODE');

  push @{$channel{$chan}{trans}}, $trans;
  our %chan_trans;
  $chan_trans{$chan}->{$name} = +{ pos  => $#{$channel{$chan}{trans}},
                                   tran => $trans,
                                   create_line => join(':', (caller)[1,2]),
                                 };
  return $name;
}

sub remove_chan_trans {
  my ($chan, $name) = @_;

  croak "Channel does not exist: $chan\n"
    unless exists $channel{$chan};
  our %chan_trans;

lib/Log/Info.pm  view on Meta::CPAN

    sub {
      local $dying = 1;
      $save = $! + 0;
      my $message = join '', grep defined, @_;
      if ( $message !~ /\A[\s\n]*\Z/ ) {
        # Always terminate with a newline.  This ensures conformity of message
        # with that checked in SIG{__DIE__}, which otherwise may have an
        # "\n  at line..." appended.
        # If we want such appendages, we can add them ourselves
        $message =~
          s/([^\n])\z/sprintf("%s at %s line %d", $1, (caller)[1,2]) . "\n"/e;
        $message =~ s/\n+\z/\n/;
        Log(CHAN_INFO, LOG_ERR, "$message")
          unless $message eq $lastmessage;
        $lastmessage = $message;
      }
      $! = $save
        if $save;
      # this causes the message to percolate to the default die handler, which
      # typically writes it to stderr.  So the message may get output twice.
      # That is unfortunate, but we need to do this to ensure that $@ is still

lib/Log/Info/Fork.pm  view on Meta::CPAN


  my $message;
  if ( @message > 1 ) {
    # It's the weirdest thing...
    # sprintf @message here seems to force @message into a scalar context!
    # even making the lhs a list context doesn't help.  Spook!
    $message = sprintf ($message[0], @message[1..$#message]);
  } elsif ( @message == 1 ) {
    $message = $message[0];
  } else {
    $message = sprintf "Empty log invoked at %s:%s", (caller)[0,1];
  }

  $message = $self->format($channel, $level, $source, $message);
  Log ($channel, $level, $message);
}

# -------------------------------------
# INSTANCE HIGHER-LEVEL PROCEDURES
# -------------------------------------



( run in 2.140 seconds using v1.01-cache-2.11-cpan-1e74a51a04c )