From 94534a9c8c84769148e4f85aec0540608f44898b Mon Sep 17 00:00:00 2001
From: Patrick Spek
Date: Thu, 2 Jul 2020 03:50:25 +0200
Subject: Implement raiph's our-scalar suggestion
This moves the actual Log role to Log::Abstract, but the user-facing
interface remains the same due to some EXPORT magic. This little bit of
magic makes manual inclusion of Log::Level redundant as well.
The suggestion itself concerns a new addition to the module,
$Log::instance. This is a "shared" variable in that one part of your
program can set it, and others parts can use it wherever. This is
potentially favourable over using $*LOG, especially in multi-threaded
programs.
---
lib/Log.rakumod | 34 ++++++++++------------------------
1 file changed, 10 insertions(+), 24 deletions(-)
(limited to 'lib/Log.rakumod')
diff --git a/lib/Log.rakumod b/lib/Log.rakumod
index 542a732..c818217 100644
--- a/lib/Log.rakumod
+++ b/lib/Log.rakumod
@@ -2,32 +2,18 @@
use v6.d;
+use Log::Abstract;
use Log::Level;
-unit role Log;
-
-# Methods for handling plain string messages.
-multi method emergency (Str:D $) { * }
-multi method alert (Str:D $) { * }
-multi method critical (Str:D $) { * }
-multi method error (Str:D $) { * }
-multi method warning (Str:D $) { * }
-multi method notice (Str:D $) { * }
-multi method info (Str:D $) { * }
-multi method debug (Str:D $) { * }
-
-# Methods for handling formatted messages.
-multi method emergency (Str:D $, *@) { * }
-multi method alert (Str:D $, *@) { * }
-multi method critical (Str:D $, *@) { * }
-multi method error (Str:D $, *@) { * }
-multi method warning (Str:D $, *@) { * }
-multi method notice (Str:D $, *@) { * }
-multi method info (Str:D $, *@) { * }
-multi method debug (Str:D $, *@) { * }
-
-# Method for configuration
-multi method add-output (IO::Handle:D $, Int() $ where Log::Level::Emergency ≤ * ≤ Log::Level::Debug, Callable $?) { * }
+sub EXPORT
+{
+ %(
+ 'Log' => Log::Abstract,
+ 'Log::Level' => Log::Level,
+ )
+}
+
+our $instance;
=begin pod
--
cgit v1.1