From e09bd7c213ad6ed6b1e3848adf69a44a10827580 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Mon, 28 Nov 2016 16:30:54 +0000 Subject: [PATCH] fhem.pl: escape events (Forum #61552) git-svn-id: https://svn.fhem.de/fhem/trunk@12680 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 31664dbfa..3d5755e09 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -813,6 +813,21 @@ GetLogLevel(@) return $df; } +sub +GetVerbose($) +{ + my ($dev) = @_; + if(defined($dev) && + defined($attr{$dev}) && + defined (my $devlevel = $attr{$dev}{verbose})) { + return $devlevel; + + } else { + return $attr{global}{verbose}; + + } +} + ################################################ # the new Log with integrated loglevel checking @@ -2921,7 +2936,8 @@ stacktrace() my $max_depth = 50; # Forum #59831 - Log 1, "eval: $cmdFromAnalyze" if($cmdFromAnalyze && $attr{global}{verbose} < 3); + Log 1, "eval: $cmdFromAnalyze" + if($cmdFromAnalyze && $attr{global}{verbose} < 3); Log 1, "stacktrace:"; while( (my @call_details = (caller($i++))) && ($i<$max_depth) ) { Log 1, sprintf (" %-35s called by %s (%s)", @@ -3177,7 +3193,10 @@ DoTrigger($$@) # the inner loop. if($max && !defined($hash->{INTRIGGER})) { $hash->{INTRIGGER}=1; - Log 5, "Starting notify loop for $dev, first event $hash->{CHANGED}->[0]"; + if($attr{global}{verbose} >= 5) { + Log 5, "Starting notify loop for $dev, " . scalar(@{$hash->{CHANGED}}) . + " event(s), first is " . escapeLogLine($hash->{CHANGED}->[0]); + } createNtfyHash() if(!%ntfyHash); $hash->{NTFY_TRIGGERTIME} = $now; # Optimize FileLog my $ntfyLst = (defined($ntfyHash{$dev}) ? $ntfyHash{$dev} : $ntfyHash{"*"}); @@ -3405,7 +3424,9 @@ Dispatch($$$) my $module = $modules{$hash->{TYPE}}; my $name = $hash->{NAME}; - Log3 $hash, 5, "$name dispatch $dmsg"; + if(GetVerbose($name) == 5) { + Log3 $hash, 5, escapeLogLine("$name: dispatch $dmsg"); + } my ($isdup, $idx) = CheckDuplicate($name, $dmsg, $module->{FingerprintFn}); return rejectDuplicate($name,$idx,$addvals) if($isdup);