Changed LogEntries table: Use log level instead of nick name

This commit is contained in:
Igor Scheller 2017-09-19 19:33:24 +02:00
parent b3b65743cd
commit e6ed8a3017
9 changed files with 45 additions and 42 deletions

View File

@ -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;

View File

@ -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
',

View File

@ -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)
]);

View File

@ -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]);
}

View File

@ -7,6 +7,9 @@
<testsuite name="Models">
<directory>./test/model/</directory>
</testsuite>
<testsuite name="Logger">
<directory>./test/Logger/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>

View File

@ -38,7 +38,7 @@ class EngelsystemLogger extends AbstractLogger
$message = $this->interpolate($message, $context);
LogEntry_create('Logger: ' . $level, $message);
LogEntry_create($level, $message);
}
/**

View File

@ -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();
}
}

View File

@ -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();
}

View File

@ -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()
@ -23,13 +23,10 @@ class RoomModelTest extends TestCase
$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);