Kaydet (Commit) def161ea authored tarafından Andre Fischer's avatar Andre Fischer

123595: Logging of make_installer.pl now supports indentation.

üst 6bfb090a
...@@ -89,6 +89,40 @@ our $Info = installer::logger->new("info", ...@@ -89,6 +89,40 @@ our $Info = installer::logger->new("info",
'is_show_log_id' => 0 'is_show_log_id' => 0
); );
=head2 SetupSimpleLogging ($filename)
Setup logging so that $Global, $Lang and $Info all print to the console AND to the log file.
=cut
sub SetupSimpleLogging ($)
{
my ($log_filename) = @_;
$Info = installer::logger->new("info",
'is_print_to_console' => 1,
'is_show_relative_time' => 1,
);
$Global = installer::logger->new("glob",
'is_print_to_console' => 0,
'is_show_relative_time' => 1,
'forward' => [$Info]
);
$Lang = installer::logger->new("lang",
'is_print_to_console' => 0,
'is_show_relative_time' => 1,
'forward' => [$Info]
);
$Info->set_filename($log_filename);
$Info->{'is_print_to_console'} = 1;
$installer::globals::quiet = 0;
starttime();
}
=head2 new($class, $id, @arguments) =head2 new($class, $id, @arguments)
Create a new instance of the logger class. Create a new instance of the logger class.
...@@ -119,7 +153,9 @@ sub new ($$@) ...@@ -119,7 +153,9 @@ sub new ($$@)
# Show log id (mostly for debugging the logger) # Show log id (mostly for debugging the logger)
'is_show_log_id' => 0, 'is_show_log_id' => 0,
# Show the process id, useful on the console when doing a multiprocessor build. # Show the process id, useful on the console when doing a multiprocessor build.
'is_show_process_id' => 0 'is_show_process_id' => 0,
# Current indentation
'indentation' => "",
}; };
while (scalar @arguments >= 2) while (scalar @arguments >= 2)
{ {
...@@ -219,6 +255,7 @@ sub process_line ($$$$$$) ...@@ -219,6 +255,7 @@ sub process_line ($$$$$$)
{ {
$line .= $pid . " : "; $line .= $pid . " : ";
} }
$line .= $self->{'indentation'};
$line .= $message; $line .= $message;
# Print the line to a file or to the console or store it for later use. # Print the line to a file or to the console or store it for later use.
...@@ -359,6 +396,24 @@ sub set_forward ($$) ...@@ -359,6 +396,24 @@ sub set_forward ($$)
sub increase_indentation ($)
{
my ($self) = @_;
$self->{'indentation'} .= " ";
}
sub decrease_indentation ($)
{
my ($self) = @_;
$self->{'indentation'} = substr($self->{'indentation'}, 4);
}
#################################################### ####################################################
# Including header files into the logfile # Including header files into the logfile
#################################################### ####################################################
...@@ -637,6 +692,9 @@ sub print_error ...@@ -637,6 +692,9 @@ sub print_error
{ {
my $message = shift; my $message = shift;
chomp $message; chomp $message;
PrintError($message);
print STDERR "\n"; print STDERR "\n";
print STDERR "**************************************************\n"; print STDERR "**************************************************\n";
print STDERR "ERROR: $message"; print STDERR "ERROR: $message";
...@@ -646,6 +704,18 @@ sub print_error ...@@ -646,6 +704,18 @@ sub print_error
} }
sub PrintError ($@)
{
my ($format, @arguments) = @_;
$Info->printf("Error: ".$format, @arguments);
}
=head2 PrintStackTrace() =head2 PrintStackTrace()
This is for debugging the print and printf methods of the logger class and their use. This is for debugging the print and printf methods of the logger class and their use.
Therefore we use the Perl print/printf directly and not the logger methods to avoid loops in case of errors. Therefore we use the Perl print/printf directly and not the logger methods to avoid loops in case of errors.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment