diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2017-09-19 19:33:24 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2017-09-19 19:45:02 +0200 |
commit | e6ed8a30171b86b452cec21a283373fc14dd5330 (patch) | |
tree | ac50aa8118686421cce0e5970657095d3a2fde73 | |
parent | b3b65743cdc534f7632c8e04e80d3489eec9677c (diff) |
Changed LogEntries table: Use log level instead of nick name
-rw-r--r-- | db/update.sql | 3 | ||||
-rw-r--r-- | includes/model/LogEntries_model.php | 12 | ||||
-rw-r--r-- | includes/pages/admin_log.php | 8 | ||||
-rw-r--r-- | includes/sys_log.php | 6 | ||||
-rw-r--r-- | phpunit.xml | 3 | ||||
-rw-r--r-- | src/Logger/EngelsystemLogger.php | 2 | ||||
-rw-r--r-- | test/Logger/EngelsystemLoggerTest.php | 7 | ||||
-rw-r--r-- | test/model/LogEntriesModelTest.php | 29 | ||||
-rw-r--r-- | test/model/RoomModelTest.php | 17 |
9 files changed, 45 insertions, 42 deletions
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 @@ <testsuite name="Models"> <directory>./test/model/</directory> </testsuite> + <testsuite name="Logger"> + <directory>./test/Logger/</directory> + </testsuite> </testsuites> <filter> <whitelist> 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 @@ <?php + namespace Engelsystem\Test; -use \PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestCase; +use Psr\Log\LogLevel; class LogEntriesModelTest extends TestCase { - - public function create_LogEntry() - { - LogEntry_create('test', 'test'); - } - - public function test_LogEntry_create() + public function testCreateLogEntry() { + LogEntries_clear_all(); $count = count(LogEntries()); - $this->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 @@ <?php + namespace Engelsystem\Test; -use \PHPUnit\Framework\TestCase; +use PHPUnit\Framework\TestCase; class RoomModelTest extends TestCase { - private $room_id = null; public function create_Room() @@ -16,20 +16,17 @@ class RoomModelTest extends TestCase public function test_Room() { $this->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); |