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