From 8b3b434aaf1b4dc52f1278dac52d83de70b029df Mon Sep 17 00:00:00 2001
From: Patrick Spek
Date: Mon, 20 Apr 2020 10:53:22 +0200
Subject: Initial commit
---
lib/Log.rakumod | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++
lib/Log/Level.rakumod | 40 ++++++++++++++++++++++++++++++++++++
2 files changed, 96 insertions(+)
create mode 100644 lib/Log.rakumod
create mode 100644 lib/Log/Level.rakumod
(limited to 'lib')
diff --git a/lib/Log.rakumod b/lib/Log.rakumod
new file mode 100644
index 0000000..e0ecb8d
--- /dev/null
+++ b/lib/Log.rakumod
@@ -0,0 +1,56 @@
+#! /usr/bin/env false
+
+use v6.d;
+
+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 $?) { * }
+
+=begin pod
+
+=NAME Log
+=VERSION 0.0.0
+=AUTHOR Patrick Spek
+
+=begin LICENSE
+Copyright © 2020
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, version 3.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program. If not, see http://www.gnu.org/licenses/.
+=end LICENSE
+
+=end pod
+
+# vim: ft=raku noet sw=8 ts=8
diff --git a/lib/Log/Level.rakumod b/lib/Log/Level.rakumod
new file mode 100644
index 0000000..3c57adf
--- /dev/null
+++ b/lib/Log/Level.rakumod
@@ -0,0 +1,40 @@
+#! /usr/bin/env false
+
+use v6.d;
+
+enum Log::Level <
+ Emergency
+ Alert
+ Critical
+ Error
+ Warning
+ Notice
+ Info
+ Debug
+>;
+
+=begin pod
+
+=NAME Log::Level
+=VERSION 0.0.0
+=AUTHOR Patrick Spek
+
+=begin LICENSE
+Copyright © 2020
+
+This program is free software: you can redistribute it and/or modify it under
+the terms of the GNU Lesser General Public License as published by the Free
+Software Foundation, version 3.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program. If not, see http://www.gnu.org/licenses/.
+=end LICENSE
+
+=end pod
+
+# vim: ft=raku noet sw=8 ts=8
--
cgit v1.1