[Koha-patches] [PATCH] Reduce logging from rebuild_zebra.pl with a command line option
Michael Hafen
mdhafen at tech.washk12.org
Wed Oct 1 20:04:16 CEST 2008
This reduces the output of the script and zebraidx, and creates a -v
command line switch which will increase the logging to their former
states.
---
misc/migration_tools/rebuild_zebra.pl | 113 ++++++++++++++++++++-------------
1 files changed, 69 insertions(+), 44 deletions(-)
diff --git a/misc/migration_tools/rebuild_zebra.pl b/misc/migration_tools/rebuild_zebra.pl
index 38054c3..731aee4 100755
--- a/misc/migration_tools/rebuild_zebra.pl
+++ b/misc/migration_tools/rebuild_zebra.pl
@@ -29,6 +29,8 @@ my $want_help;
my $as_xml;
my $process_zebraqueue;
my $do_not_clear_zebraqueue;
+my $verbose_logging;
+my $zebraidx_log_opt = " -v none,fatal,warn ";
my $result = GetOptions(
'd:s' => \$directory,
'reset' => \$reset,
@@ -43,6 +45,7 @@ my $result = GetOptions(
'x' => \$as_xml,
'y' => \$do_not_clear_zebraqueue,
'z' => \$process_zebraqueue,
+ 'v' => \$verbose_logging,
);
@@ -78,6 +81,13 @@ if ($process_zebraqueue and $do_not_clear_zebraqueue) {
if ($noshadow) {
$noshadow = ' -n ';
}
+
+# -v is for verbose, which seems backwards here because of how logging is set
+# on the CLI of zebraidx. It works this way. The default is to not log much
+if ($verbose_logging) {
+ $zebraidx_log_opt = '';
+}
+
my $use_tempdir = 0;
unless ($directory) {
$use_tempdir = 1;
@@ -93,35 +103,39 @@ my $dbh = C4::Context->dbh;
my ($biblionumbertagfield,$biblionumbertagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = &GetMarcFromKohaField("biblioitems.biblioitemnumber","");
-print "Zebra configuration information\n";
-print "================================\n";
-print "Zebra biblio directory = $biblioserverdir\n";
-print "Zebra authorities directory = $authorityserverdir\n";
-print "Koha directory = $kohadir\n";
-print "BIBLIONUMBER in : $biblionumbertagfield\$$biblionumbertagsubfield\n";
-print "BIBLIOITEMNUMBER in : $biblioitemnumbertagfield\$$biblioitemnumbertagsubfield\n";
-print "================================\n";
+if ( $verbose_logging ) {
+ print "Zebra configuration information\n";
+ print "================================\n";
+ print "Zebra biblio directory = $biblioserverdir\n";
+ print "Zebra authorities directory = $authorityserverdir\n";
+ print "Koha directory = $kohadir\n";
+ print "BIBLIONUMBER in : $biblionumbertagfield\$$biblionumbertagsubfield\n";
+ print "BIBLIOITEMNUMBER in : $biblioitemnumbertagfield\$$biblioitemnumbertagsubfield\n";
+ print "================================\n";
+}
if ($do_munge) {
munge_config();
}
if ($authorities) {
- index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue);
+ index_records('authority', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt);
} else {
print "skipping authorities\n";
}
if ($biblios) {
- index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue);
+ index_records('biblio', $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt);
} else {
print "skipping biblios\n";
}
-print "====================\n";
-print "CLEANING\n";
-print "====================\n";
+if ( $verbose_logging ) {
+ print "====================\n";
+ print "CLEANING\n";
+ print "====================\n";
+}
if ($keep_export) {
print "NOTHING cleaned : the export $directory has been kept.\n";
print "You can re-run this script with the -s ";
@@ -144,18 +158,20 @@ if ($keep_export) {
}
sub index_records {
- my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue) = @_;
+ my ($record_type, $directory, $skip_export, $process_zebraqueue, $as_xml, $noxml, $do_not_clear_zebraqueue, $verbose_logging, $zebraidx_log_opt) = @_;
my $num_records_exported = 0;
my $num_records_deleted = 0;
- if ($skip_export) {
+ if ($skip_export && $verbose_logging) {
print "====================\n";
print "SKIPPING $record_type export\n";
print "====================\n";
} else {
- print "====================\n";
- print "exporting $record_type\n";
- print "====================\n";
+ if ( $verbose_logging ) {
+ print "====================\n";
+ print "exporting $record_type\n";
+ print "====================\n";
+ }
mkdir "$directory" unless (-d $directory);
mkdir "$directory/$record_type" unless (-d "$directory/$record_type");
if ($process_zebraqueue) {
@@ -180,17 +196,19 @@ sub index_records {
#
# and reindexing everything
#
- print "====================\n";
- print "REINDEXING zebra\n";
- print "====================\n";
+ if ( $verbose_logging ) {
+ print "====================\n";
+ print "REINDEXING zebra\n";
+ print "====================\n";
+ }
my $record_fmt = ($as_xml) ? 'marcxml' : 'iso2709' ;
if ($process_zebraqueue) {
- do_indexing($record_type, 'delete', "$directory/del_$record_type", $reset, $noshadow, $record_fmt)
+ do_indexing($record_type, 'delete', "$directory/del_$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
if $num_records_deleted;
- do_indexing($record_type, 'update', "$directory/upd_$record_type", $reset, $noshadow, $record_fmt)
+ do_indexing($record_type, 'update', "$directory/upd_$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
if $num_records_exported;
} else {
- do_indexing($record_type, 'update', "$directory/$record_type", $reset, $noshadow, $record_fmt)
+ do_indexing($record_type, 'update', "$directory/$record_type", $reset, $noshadow, $record_fmt, $zebraidx_log_opt)
if $num_records_exported;
}
}
@@ -258,8 +276,8 @@ sub export_marc_records_from_sth {
open (OUT, ">:utf8 ", "$directory/exported_records") or die $!;
my $i = 0;
while (my ($record_number) = $sth->fetchrow_array) {
- print ".";
- print "\r$i" unless ($i++ %100);
+ print "." if ( $verbose_logging );
+ print "\r$i" unless ($i++ %100 or !$verbose_logging);
my ($marc) = get_corrected_marc_record($record_type, $record_number, $noxml);
if (defined $marc) {
# FIXME - when more than one record is exported and $as_xml is true,
@@ -271,7 +289,7 @@ sub export_marc_records_from_sth {
$num_exported++;
}
}
- print "\nRecords exported: $num_exported\n";
+ print "\nRecords exported: $num_exported\n" if ( $verbose_logging );
close OUT;
return $num_exported;
}
@@ -286,8 +304,8 @@ sub export_marc_records_from_list {
foreach my $record_number ( map { $_->{biblio_auth_number} }
grep { !$found{ $_->{biblio_auth_number} }++ }
@$entries ) {
- print ".";
- print "\r$i" unless ($i++ %100);
+ print "." if ( $verbose_logging );
+ print "\r$i" unless ($i++ %100 or !$verbose_logging);
my ($marc) = get_corrected_marc_record($record_type, $record_number, $noxml);
if (defined $marc) {
# FIXME - when more than one record is exported and $as_xml is true,
@@ -299,7 +317,7 @@ sub export_marc_records_from_list {
$num_exported++;
}
}
- print "\nRecords exported: $num_exported\n";
+ print "\nRecords exported: $num_exported\n" if ( $verbose_logging );
close OUT;
return $num_exported;
}
@@ -311,8 +329,8 @@ sub generate_deleted_marc_records {
open (OUT, ">:utf8 ", "$directory/exported_records") or die $!;
my $i = 0;
foreach my $record_number (map { $_->{biblio_auth_number} } @$entries ) {
- print "\r$i" unless ($i++ %100);
- print ".";
+ print "\r$i" unless ($i++ %100 or !$verbose_logging);
+ print "." if ( $verbose_logging );
my $marc = MARC::Record->new();
if ($record_type eq 'biblio') {
@@ -327,7 +345,7 @@ sub generate_deleted_marc_records {
print OUT ($as_xml) ? $marc->as_xml_record() : $marc->as_usmarc();
$num_exported++;
}
- print "\nRecords exported: $num_exported\n";
+ print "\nRecords exported: $num_exported\n" if ( $verbose_logging );
close OUT;
return $num_exported;
@@ -475,16 +493,16 @@ sub fix_unimarc_100 {
}
sub do_indexing {
- my ($record_type, $op, $record_dir, $reset_index, $noshadow, $record_format) = @_;
+ my ($record_type, $op, $record_dir, $reset_index, $noshadow, $record_format, $zebraidx_log_opt) = @_;
my $zebra_server = ($record_type eq 'biblio') ? 'biblioserver' : 'authorityserver';
my $zebra_db_name = ($record_type eq 'biblio') ? 'biblios' : 'authorities';
my $zebra_config = C4::Context->zebraconfig($zebra_server)->{'config'};
my $zebra_db_dir = C4::Context->zebraconfig($zebra_server)->{'directory'};
- system("zebraidx -c $zebra_config -g $record_format -d $zebra_db_name init") if $reset_index;
- system("zebraidx -c $zebra_config $noshadow -g $record_format -d $zebra_db_name $op $record_dir");
- system("zebraidx -c $zebra_config -g $record_format -d $zebra_db_name commit") unless $noshadow;
+ system("zebraidx -c $zebra_config $zebraidx_log_opt -g $record_format -d $zebra_db_name init") if $reset_index;
+ system("zebraidx -c $zebra_config $zebraidx_log_opt $noshadow -g $record_format -d $zebra_db_name $op $record_dir");
+ system("zebraidx -c $zebra_config $zebraidx_log_opt -g $record_format -d $zebra_db_name commit") unless $noshadow;
}
@@ -539,6 +557,9 @@ Parameters:
the same records - specify -y to override this.
Cannot be used with -z.
+ -v increase the amount of logging. Normally only
+ warnings and errors from the indexing are shown.
+
-munge-config Deprecated option to try
to fix Zebra config files.
--help or -h show this message.
@@ -630,9 +651,11 @@ print "Info: tab dir : $tabdir\n";
#
my $created_dir_or_file = 0;
if ($authorities) {
- print "====================\n";
- print "checking directories & files for authorities\n";
- print "====================\n";
+ if ( $verbose_logging ) {
+ print "====================\n";
+ print "checking directories & files for authorities\n";
+ print "====================\n";
+ }
unless (-d "$authorityserverdir") {
system("mkdir -p $authorityserverdir");
print "Info: created $authorityserverdir\n";
@@ -771,10 +794,12 @@ rank:rank-1
}
if ($biblios) {
- print "====================\n";
- print "checking directories & files for biblios\n";
- print "====================\n";
-
+ if ( $verbose_logging ) {
+ print "====================\n";
+ print "checking directories & files for biblios\n";
+ print "====================\n";
+ }
+
#
# BIBLIOS : creating directory structure
#
--
1.5.4.3
More information about the Koha-patches
mailing list