aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaarten Vanraes <alien@mageia.org>2016-05-16 17:51:37 +0200
committerMaarten Vanraes <alien@mageia.org>2016-05-16 17:51:37 +0200
commit6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c (patch)
tree8e72197c179e5f1f0f299b2399fd77b7ad68f52a
parentd3d3537d2611f1cb07d6e8205a7e021f0da0c289 (diff)
downloadmanatools-6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c.tar
manatools-6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c.tar.gz
manatools-6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c.tar.bz2
manatools-6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c.tar.xz
manatools-6f40a4489fa7e6d2cc4852e06f5c67ad30fb833c.zip
logging in disk_backend, all the way to Plugin level
-rw-r--r--lib/ManaTools/Module/Disk.pm3
-rw-r--r--lib/ManaTools/Shared/disk_backend.pm62
-rw-r--r--lib/ManaTools/Shared/disk_backend/Plugin.pm1
-rw-r--r--lib/test-diskbe.pl2
4 files changed, 67 insertions, 1 deletions
diff --git a/lib/ManaTools/Module/Disk.pm b/lib/ManaTools/Module/Disk.pm
index 300696c6..9b3b8584 100644
--- a/lib/ManaTools/Module/Disk.pm
+++ b/lib/ManaTools/Module/Disk.pm
@@ -98,7 +98,8 @@ has 'backend' => (
lazy => 1,
init_arg => undef,
default => sub {
- return ManaTools::Shared::disk_backend->new();
+ my $self = shift;
+ return ManaTools::Shared::disk_backend->new(logger => $self->logger());
}
);
diff --git a/lib/ManaTools/Shared/disk_backend.pm b/lib/ManaTools/Shared/disk_backend.pm
index 9491c42f..6e2c72e6 100644
--- a/lib/ManaTools/Shared/disk_backend.pm
+++ b/lib/ManaTools/Shared/disk_backend.pm
@@ -67,6 +67,68 @@ use Moose;
use File::Basename;
use Module::Path qw(module_path);
+use ManaTools::Shared::Locales;
+use ManaTools::Shared::Logging;
+
+#=============================================================
+
+=head2 loc
+
+ loc attribute defines localization object that uses "manatools"
+ domain as default. (see ManaTools::Shared::Locales for details).
+ To use your own Module domain, override this attribute by using
+ has '+loc' => (
+ ...
+ )
+ or assign it again to your ManaTools::Shared::Locales object into
+ the extension module implementation.
+
+=cut
+
+#=============================================================
+has 'loc' => (
+ is => 'rw',
+ isa => 'ManaTools::Shared::Locales',
+ lazy => 1,
+ default => sub {
+ return ManaTools::Shared::Locales->new();
+ }
+);
+
+
+#=============================================================
+
+=head2 logger
+
+ logger attribute defines logging object that uses the loc attribute
+ and goes to Syslog. (see ManaTools::Shared::Logging for details).
+ You can use this attribute to log various messages:
+
+ $log->D("debugstuff: %s", $somestring);
+ $log->I("infostuff: %s", $somestring);
+ $log->W("warnstuff: %s", $somestring);
+ $log->E("errorstuff: %s", $somestring);
+
+ if you wish to trace (goes to STDERR):
+
+ $log->trace(1);
+
+=cut
+
+#=============================================================
+has 'logger' => (
+ is => 'rw',
+ isa => 'ManaTools::Shared::Logging',
+ lazy => 1,
+ init_arg => undef,
+ required => 0,
+ default => sub {
+ my $self = shift;
+ # make sure to trigger loc & name first
+ return ManaTools::Shared::Logging->new(loc => $self->loc(), ident => 'disk_backend');
+ },
+ handles => ['D','I','W','E'],
+);
has 'plugins' => (
is => 'ro',
diff --git a/lib/ManaTools/Shared/disk_backend/Plugin.pm b/lib/ManaTools/Shared/disk_backend/Plugin.pm
index 7fb3155f..61dd767a 100644
--- a/lib/ManaTools/Shared/disk_backend/Plugin.pm
+++ b/lib/ManaTools/Shared/disk_backend/Plugin.pm
@@ -122,6 +122,7 @@ has 'parent' => (
is => 'ro',
isa => 'ManaTools::Shared::disk_backend',
required => 1,
+ handles => ['D','I','W','E'],
);
#=============================================================
diff --git a/lib/test-diskbe.pl b/lib/test-diskbe.pl
index c97479d0..2930e426 100644
--- a/lib/test-diskbe.pl
+++ b/lib/test-diskbe.pl
@@ -65,6 +65,8 @@ sub dumppart {
my $db_man = ManaTools::Shared::disk_backend->new();
+#$db_man->logger->trace(1);
+
$db_man->probe();
my $mode = 'disks';