The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

package DJabberd::Log::Junk;

use Log::Log4perl qw(:resurrect);

package DJabberd::Log;
use strict;
use warnings;

no warnings 'redefine';
sub get_logger {
    my ($class, $category) = @_;
    my ($package, $filename, $line) = caller;
    return Log::Log4perl->get_logger($category || $package);
}

our $has_run;
our $logger;
unless ($has_run) {

    my $used_file;
    my @locations = (
        "etc/log.conf",
        "/etc/djabberd/log.conf",
        "etc/log.conf.default"
    );
    @locations = () if $ENV{LOGLEVEL};
    foreach my $conffile (@locations) {
        next unless -e $conffile;
        Log::Log4perl->init_and_watch($conffile, 1);
        $logger = Log::Log4perl->get_logger();
        $used_file = $conffile;
        last;
    }

    my $loglevel = $ENV{LOGLEVEL} || "WARN";

    unless ($used_file) {
        my $conf = qq{
log4perl.logger.DJabberd = $loglevel, screen
log4perl.logger.DJabberd.Hook = $loglevel

# This psuedo class is used to control if raw XML is to be showed or not
# at DEBUG it shows all raw traffic
# at INFO  it censors out the actual data
log4perl.logger.DJabberd.Connection.XML = $loglevel

log4perl.appender.screen = Log::Log4perl::Appender::ScreenColoredLevels
log4perl.appender.screen.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.screen.layout.ConversionPattern = %P %-5p %-40c %m %n
};
        Log::Log4perl->init(\$conf);
        $logger = Log::Log4perl->get_logger();
        $used_file = "BUILT-IN-DEFAULTS";
    }

    $logger->info("Started logging using '$used_file'");
    $has_run++;
}

# Local Variables:
# mode: perl
# c-basic-indent: 4
# indent-tabs-mode: nil
# End:

1;