system-log
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo

Namespaces

  • Phramework
    • Exceptions
    • SystemLog
      • Log

Classes

  • SystemLog

Class SystemLog

SystemLog package, used to log requests and exceptions Defined settings:

  • object system-log
    • string log Log implentation class (full class path)
    • integer body_raw_limit [Optional] In bytes, default is 1000000
    • array matrix [Optional] Set log level for each Controller::method.
      Constants defined in this class with prefix LOG_ are used as flags to enable certain fields.
    • array matrix-exception [Optional] Set log level for each exception class.
      Constants defined in this class with prefix LOG_ are used as flags to enable certain fields.

See __construct method for an example

Namespace: Phramework\SystemLog
License: Apache-2.0
Author: Xenofon Spafaridis nohponex@gmail.com
Since: 0.0.0
Link: Source code
Link: Documentation
Located at SystemLog.php

Methods summary

public
# __construct( object $settings )

Create new system log instance Use register method to register the instance to phramework.
NOTE that multiple system log instances can be created, this is useful when different log levels for separate system reports are needed.

Create new system log instance Use register method to register the instance to phramework.
NOTE that multiple system log instances can be created, this is useful when different log levels for separate system reports are needed.

Parameters

$settings
Settings object to initialize a system log instance

Example

//Your index.php file

include __DIR__ . '/../../vendor/autoload.php';

use \Phramework\Phramework;
use \Phramework\SystemLog\SystemLog;

//Global phramework settings
$settings = [
    'system-log' => (object)[
        'log' => 'Phramework\\SystemLog\\Log\\TerminalLog',
        'body_raw_limit' => 1000,
        'matrix' => [
            'MyNamespace\\Controllers\\DummyController::GET' =>
                  SystemLog::LOG_REQUEST_HEADER_AGENT
                | SystemLog::LOG_REQUEST_PARAMS
            ,
            'MyNamespace\\Controllers\\DummyController::POST' =>
                  SystemLog::LOG_REQUEST_HEADERS
                | SystemLog::LOG_REQUEST_PARAMS
                | SystemLog::LOG_REQUEST_BODY_RAW
        ]
        'matrix-exception' => [
            'Exception' =>
                  SystemLog::LOG_STANDARD,
            'Phramework\\Exceptions\\ServerException' =>
                  SystemLog::LOG_REQUEST_HEADER_AGENT
                | SystemLog::LOG_REQUEST_PARAMS
        ]
    ]
];

//Prepare your $URIStrategy here

//Initialize phramework
$phramework = new Phramework(
    $settings,
    $URIStrategy
);

//Initialize a system log instance and register it
//before calling phramework's invoke method
$systemLog = new SystemLog($settings['system-log']);
$systemLog->register((object)[
    'server' => 'my server'
]);

//Invoke phramework
$phramework->invoke();

public
# register( null|object $additionalParameters = null )

Register system log instance to phramework

Register system log instance to phramework

Parameters

$additionalParameters

Throws

Exception

Constants summary

integer LOG_STANDARD

Default flag for requests By default will store:

  • request_id
  • URI
  • method
  • ip_address
  • request_timestamp
  • response_timestamp
  • response_status_code
  • flags
  • additional_parameters

Default flag for requests By default will store:

  • request_id
  • URI
  • method
  • ip_address
  • request_timestamp
  • response_timestamp
  • response_status_code
  • flags
  • additional_parameters
# 0
integer LOG_EXCEPTION_STANDARD

Default flag for exceptions In addition to fields described in LOG_STANDARD, exceptions will store:

  • exception
  • exception_class
  • errors
  • call_trace

Default flag for exceptions In addition to fields described in LOG_STANDARD, exceptions will store:

  • exception
  • exception_class
  • errors
  • call_trace
# 0
integer LOG_IGNORE

Will ignore this request from system log

Will ignore this request from system log

# 1
integer LOG_USER_ID

Will log user's id if request is authenticated, if not false will be written. Stored as string user_id

Will log user's id if request is authenticated, if not false will be written. Stored as string user_id

# 2
integer LOG_REQUEST_HEADER_AGENT

Enables log of User-Agent header. Stored as array item in request_headers

Enables log of User-Agent header. Stored as array item in request_headers

# 65536
integer LOG_REQUEST_HEADER_REFERER

Enables log of Referer header. Stored as array item in request_headers

Enables log of Referer header. Stored as array item in request_headers

# 131072
integer LOG_REQUEST_HEADER_ACCEPT

Enables log of Accept header. Stored as array item in request_headers

Enables log of Accept header. Stored as array item in request_headers

# 524288
integer LOG_REQUEST_HEADER_CONTENT_TYPE

Enables log of Content-Type header. Stored as array item in request_headers

Enables log of Content-Type header. Stored as array item in request_headers

# 1048576
integer LOG_REQUEST_HEADERS

Enables log of all request headers. Stored as array item in request_headers

Enables log of all request headers. Stored as array item in request_headers

# 2097152
integer LOG_REQUEST_PARAMS

Enables log of parsed request parameters. Stored as object request_params

Enables log of parsed request parameters. Stored as object request_params

# 4194304
integer LOG_REQUEST_BODY_RAW

Enables log of raw request body if any.
Stored as string request_body_raw
See body_raw_limit setting, if length of request exceeds tis number then first body_raw_limit characters, prefixed by TRIMMED\n string will be used.

Enables log of raw request body if any.
Stored as string request_body_raw
See body_raw_limit setting, if length of request exceeds tis number then first body_raw_limit characters, prefixed by TRIMMED\n string will be used.

Uses

https://secure.php.net/manual/en/function.filter-var.php filter_var with FILTER_SANITIZE_STRING is applied to raw body


# 8388608
integer LOG_RESPONSE_HEADER

Enables log of response headers. Stored as array response_headers

Enables log of response headers. Stored as array response_headers

# 281474976710656
integer LOG_RESPONSE_BODY

Enables log of response body. Stored as string response_body
NOTE if LOG_RESPONSE_HEADER is turned off, still the Content-Type response header will be written to response_headers.

Enables log of response body. Stored as string response_body
NOTE if LOG_RESPONSE_HEADER is turned off, still the Content-Type response header will be written to response_headers.

# 562949953421312

Properties summary

protected Phramework\SystemLog\Log\ILog $logObject

Log storage implentation

Log storage implentation

#
protected object $settings

System log instance settings

System log instance settings

#
system-log API documentation generated by ApiGen