summaryrefslogtreecommitdiff
path: root/eg/prototype
blob: f0b0bc52f450619eed3ba424e256a1b602e80d55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl
###########################################
# prototype -- use a Class::Prototyped appender
# Mike Schilli, 2004 (m@perlmeister.com)
###########################################
use warnings;
use strict;

use Class::Prototyped;

my $class = Class::Prototyped->newPackage(
  "MyAppenders::Bulletizer",
  bullets => 1,
  log     => sub {
    my($self, %params) = @_;
    print "*" x $self->bullets(),
          $params{message};
  },
);

use Log::Log4perl qw(:easy);

Log::Log4perl->init(\ q{
  log4perl.logger = INFO, Bully

  log4perl.appender.Bully=MyAppenders::Bulletizer
  log4perl.appender.Bully.bullets=3

  log4perl.appender.Bully.layout = PatternLayout
  log4perl.appender.Bully.layout.ConversionPattern=%m %n
});

    # ... prints: "***Boo!\n";
INFO "Boo!";