Changed LogEntries table: Use log level instead of nick name
This commit is contained in:
parent
b3b65743cd
commit
e6ed8a3017
|
@ -28,3 +28,6 @@ UPDATE `Groups` SET UID = UID * 10;
|
||||||
INSERT INTO `Groups` (Name, UID) VALUES ('News Admin', -65);
|
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 `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);
|
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;
|
||||||
|
|
|
@ -5,16 +5,16 @@ use Engelsystem\Database\DB;
|
||||||
/**
|
/**
|
||||||
* Creates a log entry.
|
* Creates a log entry.
|
||||||
*
|
*
|
||||||
* @param string $nick Username
|
* @param string $logLevel Log level
|
||||||
* @param string $message Log Message
|
* @param string $message Log Message
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
function LogEntry_create($nick, $message)
|
function LogEntry_create($logLevel, $message)
|
||||||
{
|
{
|
||||||
return DB::insert('
|
return DB::insert('
|
||||||
INSERT INTO `LogEntries` (`timestamp`, `nick`, `message`)
|
INSERT INTO `LogEntries` (`timestamp`, `level`, `message`)
|
||||||
VALUES(?, ?, ?)
|
VALUES(?, ?, ?)
|
||||||
', [time(), $nick, $message]);
|
', [time(), $logLevel, $message]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,7 +43,7 @@ function LogEntries_filter($keyword)
|
||||||
return DB::select('
|
return DB::select('
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM `LogEntries`
|
FROM `LogEntries`
|
||||||
WHERE `nick` LIKE ?
|
WHERE `level` LIKE ?
|
||||||
OR `message` LIKE ?
|
OR `message` LIKE ?
|
||||||
ORDER BY `timestamp` DESC
|
ORDER BY `timestamp` DESC
|
||||||
',
|
',
|
||||||
|
|
|
@ -17,12 +17,10 @@ function admin_log()
|
||||||
if (request()->has('keyword')) {
|
if (request()->has('keyword')) {
|
||||||
$filter = strip_request_item('keyword');
|
$filter = strip_request_item('keyword');
|
||||||
}
|
}
|
||||||
$log_entries_source = LogEntries_filter($filter);
|
$log_entries = LogEntries_filter($filter);
|
||||||
|
|
||||||
$log_entries = [];
|
foreach ($log_entries as &$log_entry) {
|
||||||
foreach ($log_entries_source as $log_entry) {
|
|
||||||
$log_entry['date'] = date('d.m.Y H:i', $log_entry['timestamp']);
|
$log_entry['date'] = date('d.m.Y H:i', $log_entry['timestamp']);
|
||||||
$log_entries[] = $log_entry;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return page_with_title(admin_log_title(), [
|
return page_with_title(admin_log_title(), [
|
||||||
|
@ -33,7 +31,7 @@ function admin_log()
|
||||||
]),
|
]),
|
||||||
table([
|
table([
|
||||||
'date' => 'Time',
|
'date' => 'Time',
|
||||||
'nick' => 'Angel',
|
'level' => 'Type',
|
||||||
'message' => 'Log Entry'
|
'message' => 'Log Entry'
|
||||||
], $log_entries)
|
], $log_entries)
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -9,10 +9,12 @@
|
||||||
function engelsystem_log($message)
|
function engelsystem_log($message)
|
||||||
{
|
{
|
||||||
global $user;
|
global $user;
|
||||||
|
|
||||||
$nick = "Guest";
|
$nick = "Guest";
|
||||||
|
$logger = app('logger');
|
||||||
|
|
||||||
if (isset($user)) {
|
if (isset($user)) {
|
||||||
$nick = User_Nick_render($user);
|
$nick = User_Nick_render($user);
|
||||||
}
|
}
|
||||||
LogEntry_create($nick, $message);
|
|
||||||
|
$logger->info('{nick}: {message}', ['nick' => $nick, 'message' => $message]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,9 @@
|
||||||
<testsuite name="Models">
|
<testsuite name="Models">
|
||||||
<directory>./test/model/</directory>
|
<directory>./test/model/</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
<testsuite name="Logger">
|
||||||
|
<directory>./test/Logger/</directory>
|
||||||
|
</testsuite>
|
||||||
</testsuites>
|
</testsuites>
|
||||||
<filter>
|
<filter>
|
||||||
<whitelist>
|
<whitelist>
|
||||||
|
|
|
@ -38,7 +38,7 @@ class EngelsystemLogger extends AbstractLogger
|
||||||
|
|
||||||
$message = $this->interpolate($message, $context);
|
$message = $this->interpolate($message, $context);
|
||||||
|
|
||||||
LogEntry_create('Logger: ' . $level, $message);
|
LogEntry_create($level, $message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -66,7 +66,7 @@ class EngelsystemLoggerTest extends TestCase
|
||||||
|
|
||||||
$entry = $this->getLastEntry();
|
$entry = $this->getLastEntry();
|
||||||
$this->assertEquals('My username is Foo', $entry['message']);
|
$this->assertEquals('My username is Foo', $entry['message']);
|
||||||
$this->assertContains(LogLevel::INFO, $entry['nick'], '', true);
|
$this->assertEquals(LogLevel::INFO, $entry['level']);
|
||||||
|
|
||||||
foreach (
|
foreach (
|
||||||
[
|
[
|
||||||
|
@ -123,4 +123,9 @@ class EngelsystemLoggerTest extends TestCase
|
||||||
|
|
||||||
return $entry;
|
return $entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function tearDown()
|
||||||
|
{
|
||||||
|
LogEntries_clear_all();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +1,32 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Engelsystem\Test;
|
namespace Engelsystem\Test;
|
||||||
|
|
||||||
use \PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Psr\Log\LogLevel;
|
||||||
|
|
||||||
class LogEntriesModelTest extends TestCase
|
class LogEntriesModelTest extends TestCase
|
||||||
{
|
{
|
||||||
|
public function testCreateLogEntry()
|
||||||
public function create_LogEntry()
|
|
||||||
{
|
|
||||||
LogEntry_create('test', 'test');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function test_LogEntry_create()
|
|
||||||
{
|
{
|
||||||
|
LogEntries_clear_all();
|
||||||
$count = count(LogEntries());
|
$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
|
// There should be one more log entry now
|
||||||
$this->assertEquals(count(LogEntries()), $count + 1);
|
$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->assertTrue(count(LogEntries()) > 0);
|
||||||
|
|
||||||
$this->assertNotFalse(LogEntries_clear_all());
|
$this->assertNotFalse(LogEntries_clear_all());
|
||||||
$this->assertEquals(count(LogEntries()), 0);
|
$this->assertCount(0, LogEntries());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function tearDown()
|
||||||
* @after
|
|
||||||
*/
|
|
||||||
public function teardown()
|
|
||||||
{
|
{
|
||||||
LogEntries_clear_all();
|
LogEntries_clear_all();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Engelsystem\Test;
|
namespace Engelsystem\Test;
|
||||||
|
|
||||||
use \PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
|
||||||
class RoomModelTest extends TestCase
|
class RoomModelTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
private $room_id = null;
|
private $room_id = null;
|
||||||
|
|
||||||
public function create_Room()
|
public function create_Room()
|
||||||
|
@ -16,20 +16,17 @@ class RoomModelTest extends TestCase
|
||||||
public function test_Room()
|
public function test_Room()
|
||||||
{
|
{
|
||||||
$this->create_Room();
|
$this->create_Room();
|
||||||
|
|
||||||
$room = Room($this->room_id);
|
$room = Room($this->room_id);
|
||||||
|
|
||||||
$this->assertNotFalse($room);
|
$this->assertNotFalse($room);
|
||||||
$this->assertNotNull($room);
|
$this->assertNotNull($room);
|
||||||
$this->assertEquals($room['Name'], 'test');
|
$this->assertEquals($room['Name'], 'test');
|
||||||
|
|
||||||
$this->assertNull(Room(- 1));
|
$this->assertNull(Room(-1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function tearDown()
|
||||||
* @after
|
|
||||||
*/
|
|
||||||
public function teardown()
|
|
||||||
{
|
{
|
||||||
if ($this->room_id != null) {
|
if ($this->room_id != null) {
|
||||||
Room_delete($this->room_id);
|
Room_delete($this->room_id);
|
||||||
|
|
Loading…
Reference in New Issue