diff --git a/db/update.sql b/db/update.sql
index 5d93e230..3ed37ceb 100644
--- a/db/update.sql
+++ b/db/update.sql
@@ -28,3 +28,6 @@ UPDATE `Groups` SET UID = UID * 10;
INSERT INTO `Groups` (Name, UID) VALUES ('News Admin', -65);
INSERT INTO `Privileges` (id, name, `desc`) VALUES (42, 'admin_news_html', 'Use HTML in news');
INSERT INTO `GroupPrivileges` (group_id, privilege_id) VALUES (-65, 14), (-65, 42);
+
+-- Add log level to LogEntries
+ALTER TABLE `LogEntries` CHANGE COLUMN `nick` `level` VARCHAR(20) NOT NULL;
diff --git a/includes/model/LogEntries_model.php b/includes/model/LogEntries_model.php
index 0e11bf8e..f0ee6673 100644
--- a/includes/model/LogEntries_model.php
+++ b/includes/model/LogEntries_model.php
@@ -5,16 +5,16 @@ use Engelsystem\Database\DB;
/**
* Creates a log entry.
*
- * @param string $nick Username
- * @param string $message Log Message
+ * @param string $logLevel Log level
+ * @param string $message Log Message
* @return bool
*/
-function LogEntry_create($nick, $message)
+function LogEntry_create($logLevel, $message)
{
return DB::insert('
- INSERT INTO `LogEntries` (`timestamp`, `nick`, `message`)
+ INSERT INTO `LogEntries` (`timestamp`, `level`, `message`)
VALUES(?, ?, ?)
- ', [time(), $nick, $message]);
+ ', [time(), $logLevel, $message]);
}
/**
@@ -43,7 +43,7 @@ function LogEntries_filter($keyword)
return DB::select('
SELECT *
FROM `LogEntries`
- WHERE `nick` LIKE ?
+ WHERE `level` LIKE ?
OR `message` LIKE ?
ORDER BY `timestamp` DESC
',
diff --git a/includes/pages/admin_log.php b/includes/pages/admin_log.php
index 03c9abb0..694b1d5a 100644
--- a/includes/pages/admin_log.php
+++ b/includes/pages/admin_log.php
@@ -17,12 +17,10 @@ function admin_log()
if (request()->has('keyword')) {
$filter = strip_request_item('keyword');
}
- $log_entries_source = LogEntries_filter($filter);
+ $log_entries = LogEntries_filter($filter);
- $log_entries = [];
- foreach ($log_entries_source as $log_entry) {
+ foreach ($log_entries as &$log_entry) {
$log_entry['date'] = date('d.m.Y H:i', $log_entry['timestamp']);
- $log_entries[] = $log_entry;
}
return page_with_title(admin_log_title(), [
@@ -33,7 +31,7 @@ function admin_log()
]),
table([
'date' => 'Time',
- 'nick' => 'Angel',
+ 'level' => 'Type',
'message' => 'Log Entry'
], $log_entries)
]);
diff --git a/includes/sys_log.php b/includes/sys_log.php
index c4ef890e..513586e6 100644
--- a/includes/sys_log.php
+++ b/includes/sys_log.php
@@ -9,10 +9,12 @@
function engelsystem_log($message)
{
global $user;
-
$nick = "Guest";
+ $logger = app('logger');
+
if (isset($user)) {
$nick = User_Nick_render($user);
}
- LogEntry_create($nick, $message);
+
+ $logger->info('{nick}: {message}', ['nick' => $nick, 'message' => $message]);
}
diff --git a/phpunit.xml b/phpunit.xml
index ff6eb120..ee5ae3e8 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -7,6 +7,9 @@
./test/model/
+
+ ./test/Logger/
+
diff --git a/src/Logger/EngelsystemLogger.php b/src/Logger/EngelsystemLogger.php
index db46215c..1f255b69 100644
--- a/src/Logger/EngelsystemLogger.php
+++ b/src/Logger/EngelsystemLogger.php
@@ -38,7 +38,7 @@ class EngelsystemLogger extends AbstractLogger
$message = $this->interpolate($message, $context);
- LogEntry_create('Logger: ' . $level, $message);
+ LogEntry_create($level, $message);
}
/**
diff --git a/test/Logger/EngelsystemLoggerTest.php b/test/Logger/EngelsystemLoggerTest.php
index da10800d..2219cdb2 100644
--- a/test/Logger/EngelsystemLoggerTest.php
+++ b/test/Logger/EngelsystemLoggerTest.php
@@ -66,7 +66,7 @@ class EngelsystemLoggerTest extends TestCase
$entry = $this->getLastEntry();
$this->assertEquals('My username is Foo', $entry['message']);
- $this->assertContains(LogLevel::INFO, $entry['nick'], '', true);
+ $this->assertEquals(LogLevel::INFO, $entry['level']);
foreach (
[
@@ -123,4 +123,9 @@ class EngelsystemLoggerTest extends TestCase
return $entry;
}
+
+ public function tearDown()
+ {
+ LogEntries_clear_all();
+ }
}
diff --git a/test/model/LogEntriesModelTest.php b/test/model/LogEntriesModelTest.php
index 25d46fc4..761725c4 100644
--- a/test/model/LogEntriesModelTest.php
+++ b/test/model/LogEntriesModelTest.php
@@ -1,37 +1,32 @@
assertNotFalse(LogEntry_create('test', 'test_LogEntry_create'));
-
+ $this->assertNotFalse(LogEntry_create(LogLevel::WARNING, 'test_LogEntry_create'));
+
// There should be one more log entry now
$this->assertEquals(count(LogEntries()), $count + 1);
}
- public function test_LogEntries_clear_all()
+ public function testClearAllLogEntries()
{
- $this->create_LogEntry();
+ LogEntry_create(LogLevel::WARNING, 'test');
$this->assertTrue(count(LogEntries()) > 0);
+
$this->assertNotFalse(LogEntries_clear_all());
- $this->assertEquals(count(LogEntries()), 0);
+ $this->assertCount(0, LogEntries());
}
- /**
- * @after
- */
- public function teardown()
+ public function tearDown()
{
LogEntries_clear_all();
}
diff --git a/test/model/RoomModelTest.php b/test/model/RoomModelTest.php
index 135a6108..4205845b 100644
--- a/test/model/RoomModelTest.php
+++ b/test/model/RoomModelTest.php
@@ -1,11 +1,11 @@
create_Room();
-
+
$room = Room($this->room_id);
-
+
$this->assertNotFalse($room);
$this->assertNotNull($room);
$this->assertEquals($room['Name'], 'test');
-
- $this->assertNull(Room(- 1));
+
+ $this->assertNull(Room(-1));
}
- /**
- * @after
- */
- public function teardown()
+ public function tearDown()
{
if ($this->room_id != null) {
Room_delete($this->room_id);