Index: /trunk/arclog/arclog_readdb.pl
===================================================================
--- /trunk/arclog/arclog_readdb.pl	(revision 17272)
+++ /trunk/arclog/arclog_readdb.pl	(revision 17273)
@@ -28,23 +28,36 @@
 die "can not open logdb" unless $dbh;
 
-my $query = $dbh->prepare("SELECT * FROM log LIMIT 10")
+my $query = $dbh->prepare("SELECT * FROM log")
     or die "database error: $!";
 $query->execute or die "database error: $!";
-my $records = $query->fetchall_arrayref(undef);
+my $rows = $query->fetchall_arrayref(undef);
+
+#$records = [ $records->[-1] ];
 
 my @myfilters;
 foreach my $filter (@{$c->get_event_filters}) {
-    push @myfilters, qr/$filter/;
+#    push @myfilters, qr/$filter/;
 }
 
-RECORDS: foreach my $rec (@$records) {
-    no warnings qw( uninitialized );
+my $strptime = DateTime::Format::Strptime->new(
+    pattern => '%Y-%m-%dT%H:%M:%S'
+);
 
-#    use Data::Dumper;
-#    print Dumper($rec);
-#    die;
+# unpack records
+my @records;
+foreach my $row (@$rows) {
+    my %rec;
+    @rec{qw( host time device event elapse_time errors )} 
+        = split(/\|/, $row->[0]);
+    $rec{time} = $strptime->parse_datetime($rec{time});
+    push @records, \%rec;
+}
 
+# sort by time
+@records = sort { $a->{time} cmp $b->{time} } @records;
+
+RECORDS: foreach my $rec (@records) {
     my ($host, $time, $device, $event, $elapse_time, $errors)
-        = split(/\|/, $rec->[0]);
+        = @$rec{qw( host time device event elapse_time errors )};
 
     # do not print filtered records
@@ -52,9 +65,9 @@
         next RECORDS if $event =~ /$filter/;
     }
+
+    no warnings qw( uninitialized );
     print "$host $time $device $event $elapse_time $errors\n";
-
     use warnings;
 }
-
 
 sub read_rcfile
