From 84af66aba26d2088d5d95c240d176f3edaf17b58 Mon Sep 17 00:00:00 2001 From: Darkelarious Date: Sun, 5 Mar 2017 22:19:52 +0100 Subject: Split error logging over multiple error types --- lib/MasterServer/Core/Logging.pm | 41 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'lib/MasterServer/Core/Logging.pm') diff --git a/lib/MasterServer/Core/Logging.pm b/lib/MasterServer/Core/Logging.pm index 5aaf683..e8631de 100755 --- a/lib/MasterServer/Core/Logging.pm +++ b/lib/MasterServer/Core/Logging.pm @@ -3,10 +3,49 @@ package MasterServer::Core::Logging; use strict; use warnings; +use Switch; use POSIX qw/strftime/; use Exporter 'import'; -our @EXPORT = qw| log |; +our @EXPORT = qw| log error |; + +################################################################################ +## Split up errors in multiple log types for suppressing +## args: $self, message +################################################################################ +sub error { + my ($self, $error, $instigator) = @_; + + # which error? + switch ($error) { + + # connection timed out + case m/Connection timed out/i { + $self->log("timeout", "on $instigator."); + } + + # connection reset by peer + case m/Connection reset by peer/i { + $self->log("reset", "on $instigator."); + } + + # connection refused + case m/Connection refused/i { + $self->log("refused", "on $instigator."); + } + + # no such device or address + case m/No such device or address/i { + $self->log("nodevice", "on $instigator."); + } + + # if all else fails + else { + $self->log("error", "$error on $instigator."); + } + } +} + ################################################################################ ## Log to file and print to screen. -- cgit v1.2.3