From f4248d06171f71f2f7fb42439e6783ebc64fbcb7 Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Fri, 2 Aug 2024 18:47:12 -0400 Subject: [PATCH] Logger: Separate implementation from interface This makes it easier to override the implementation for testing purposes. --- ddclient.in | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/ddclient.in b/ddclient.in index 77e5cf6..d39d80a 100755 --- a/ddclient.in +++ b/ddclient.in @@ -2376,12 +2376,17 @@ sub ynu { my $self = shift; my %args = (@_ % 2 ? (msg => pop) : (), @_); $args{ctx} = [$args{ctx} // ()] if ref($args{ctx}) eq ''; - my $buffer = $args{msg} // ''; + return $self->_log(\%args); + } + + sub _log { + my ($self, $args) = @_; + my $buffer = $args->{msg} // ''; chomp($buffer); - if (!$args{raw}) { - $args{label} //= ''; - my $prefix = $args{label} ne '' ? sprintf("%-8s ", $args{label} . ':') : ''; - $prefix .= "[$_]" for $self->_ctxs(), @{$args{ctx}}; + if (!$args->{raw}) { + $args->{label} //= ''; + my $prefix = $args->{label} ne '' ? sprintf("%-8s ", $args->{label} . ':') : ''; + $prefix .= "[$_]" for $self->_ctxs(), @{$args->{ctx}}; $prefix .= '> ' if $prefix; $buffer = "$prefix$buffer"; $prefix =~ s/> $/ /; @@ -2390,7 +2395,7 @@ sub ynu { $buffer .= "\n"; print(STDERR $buffer); - if ($args{email}) { + if ($args->{email}) { $emailbody .= $buffer; if (!$self->{_in_logger}) { ++$self->{_in_logger}; # Avoid infinite recursion if logger itself logs.