aboutsummaryrefslogtreecommitdiff
path: root/lib/MasterServer/Core
diff options
context:
space:
mode:
authorDarkelarious <darkelarious@333networks.com>2017-03-05 22:19:52 +0100
committerDarkelarious <darkelarious@333networks.com>2017-03-05 22:19:52 +0100
commit84af66aba26d2088d5d95c240d176f3edaf17b58 (patch)
treefe427eab0ed27238e725fa045ce4420e37063d7c /lib/MasterServer/Core
parent1bdd05e9167879eb218f61af8cad6e31d399674c (diff)
downloadMasterServer-Perl-84af66aba26d2088d5d95c240d176f3edaf17b58.tar.gz
MasterServer-Perl-84af66aba26d2088d5d95c240d176f3edaf17b58.zip
Split error logging over multiple error types
Diffstat (limited to 'lib/MasterServer/Core')
-rwxr-xr-xlib/MasterServer/Core/Logging.pm41
1 files changed, 40 insertions, 1 deletions
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.