summaryrefslogtreecommitdiff
path: root/t/032JRollFile.t
diff options
context:
space:
mode:
Diffstat (limited to 't/032JRollFile.t')
-rw-r--r--t/032JRollFile.t73
1 files changed, 73 insertions, 0 deletions
diff --git a/t/032JRollFile.t b/t/032JRollFile.t
new file mode 100644
index 0000000..82684c8
--- /dev/null
+++ b/t/032JRollFile.t
@@ -0,0 +1,73 @@
+BEGIN {
+ if($ENV{INTERNAL_DEBUG}) {
+ require Log::Log4perl::InternalDebug;
+ Log::Log4perl::InternalDebug->enable();
+ }
+}
+
+use Log::Log4perl;
+use Test::More;
+use File::Spec;
+
+BEGIN {
+ eval {
+ require Log::Dispatch::FileRotate;
+ };
+ if ($@ or $Log::Dispatch::FileRotate::VERSION < 1.10) {
+ plan skip_all => "only with Log::Dispatch::FileRotate 1.10";
+ } else {
+ plan tests => 2;
+ }
+}
+
+my $WORK_DIR = "tmp";
+if(-d "t") {
+ $WORK_DIR = File::Spec->catfile(qw(t tmp));
+}
+unless (-e "$WORK_DIR"){
+ mkdir("$WORK_DIR", 0755) || die "can't create $WORK_DIR ($!)";
+}
+
+use vars qw(@outfiles); @outfiles = (File::Spec->catfile($WORK_DIR, 'rolltest.log'),
+ File::Spec->catfile($WORK_DIR, 'rolltest.log.1'),
+ File::Spec->catfile($WORK_DIR, 'rolltest.log.2'),);
+
+foreach my $f (@outfiles){
+ unlink $f if (-e $f);
+}
+
+my $conf = <<CONF;
+log4j.category.cat1 = INFO, myAppender
+
+log4j.appender.myAppender=org.apache.log4j.RollingFileAppender
+log4j.appender.myAppender.File=@{[File::Spec->catfile($WORK_DIR, 'rolltest.log')]}
+#this will roll the file after one write
+log4j.appender.myAppender.MaxFileSize=1024
+log4j.appender.myAppender.MaxBackupIndex=2
+log4j.appender.myAppender.layout=org.apache.log4j.PatternLayout
+log4j.appender.myAppender.layout.ConversionPattern=%-5p %c - %m%n
+
+CONF
+
+Log::Log4perl->init(\$conf);
+
+my $logger = Log::Log4perl->get_logger('cat1');
+
+$logger->debug("x" x 1024 . "debugging message 1 ");
+$logger->info("x" x 1024 . "info message 1 ");
+$logger->warn("x" x 1024 . "warning message 1 ");
+$logger->fatal("x" x 1024 . "fatal message 1 ");
+
+my $rollfile = File::Spec->catfile($WORK_DIR, 'rolltest.log.2');
+
+open F, $rollfile or die "Cannot open $rollfile";
+my $result = <F>;
+close F;
+like($result, qr/^INFO cat1 - x+info message 1/);
+
+#MaxBackupIndex is 2, so this file shouldn't exist
+ok(! -e File::Spec->catfile($WORK_DIR, 'rolltest.log.3'));
+
+foreach my $f (@outfiles){
+ unlink $f if (-e $f);
+}