Refs #383 - Set up basic models for logging

This commit is contained in:
Sam Georges 2014-07-29 20:07:20 +10:00
parent 3c1e6ea846
commit b280802644
9 changed files with 259 additions and 0 deletions

View File

@ -0,0 +1,26 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class DbBackendAccessLog extends Migration
{
public function up()
{
Schema::create('backend_access_log', function(Blueprint $table)
{
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->string('ip_address')->nullable();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('backend_access_log');
}
}

View File

@ -0,0 +1,38 @@
<?php namespace Backend\Models;
use Model;
use Request;
/**
* Model for logging access to the back-end
*/
class AccessLog extends Model
{
/**
* @var string The database table used by the model.
*/
protected $table = 'backend_access_log';
/**
* @var array Relations
*/
public $belongsTo = [
'user' => ['Backend\Models\User']
];
/**
* Creates a log record
* @param Backend\Models\User $user Admin user
* @return self
*/
public static function add($user)
{
$record = new static;
$record->user = $user;
$record->ip_address = Request::getClientIp();
$record->save();
return $record;
}
}

View File

@ -0,0 +1,32 @@
# ===================================
# Column Definitions
# ===================================
columns:
created_at:
label: Date & Time
searchable: yes
login:
relation: user
select: @login
searchable: yes
ip_address:
label: IP Address
searchable: yes
first_name:
relation: user
select: @first_name
searchable: yes
last_name:
relation: user
select: @first_name
searchable: yes
email:
relation: user
select: @email
searchable: yes

View File

@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class DbCmsErrorLog extends Migration
{
public function up()
{
Schema::create('cms_error_log', function(Blueprint $table)
{
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('url')->nullable();
$table->string('referer')->nullable();
$table->integer('count')->default(0);
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('cms_error_log');
}
}

View File

@ -0,0 +1,44 @@
<?php namespace Cms\Models;
use Model;
use Request;
/**
* Model for logging 404 errors
*/
class ErrorLog extends Model
{
/**
* @var string The database table used by the model.
*/
protected $table = 'cms_error_log';
/**
* @var array The attributes that aren't mass assignable.
*/
protected $guarded = [];
/**
* Creates a log record
* @return self
*/
public static function add()
{
$record = static::firstOrNew([
'url' => Request::fullUrl(),
'referer' => Request::header('referer'),
]);
if (!$record->exists) {
$record->count = 1;
$record->save();
}
else {
$record->increment('count');
}
return $record;
}
}

View File

@ -0,0 +1,15 @@
# ===================================
# Column Definitions
# ===================================
columns:
url:
label: URL
searchable: yes
referer:
label: Referer
searchable: yes
count:
label: Counter

View File

@ -0,0 +1,27 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class DbSystemTraceLog extends Migration
{
public function up()
{
Schema::create('system_trace_log', function(Blueprint $table)
{
$table->engine = 'InnoDB';
$table->increments('id');
$table->string('level')->nullable()->index();
$table->text('message')->nullable();
$table->mediumtext('details')->nullable();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('system_trace_log');
}
}

View File

@ -0,0 +1,34 @@
<?php namespace System\Models;
use Model;
/**
* Model for logging system errors and debug trace messages
*/
class TraceLog extends Model
{
/**
* @var string The database table used by the model.
*/
protected $table = 'system_trace_log';
/**
* Creates a log record
* @param string $message Specifies the message text
* @param string $level Specifies the logging level
* @param string $details Specifies the error details string
* @return self
*/
public static function add($message, $level = 'info', $details = null)
{
$record = new static;
$record->message = $message;
$record->level = $level;
$record->details = $details;
$record->save();
return $record;
}
}

View File

@ -0,0 +1,16 @@
# ===================================
# Column Definitions
# ===================================
columns:
id:
label: ID
searchable: yes
created_at:
label: Date & Time
searchable: yes
message:
label: Message
searchable: yes