Analyzing class Alexya\Logger\Database
Description
Alexya's Database Logger.
Implements a PSR compatible database logger.
The constructor accepts as parameter the following parameters:
The \Alexya\Database\Connection
object that will be used for interacting with the database.
A string being the table name.
An associative array containing the columns and the values to insert, you can insert the following placeholders:
{YEAR}
, current year.
{MONTH}
, current month.
{DAY}
, current day.
{HOUR}
, current hour.
{MINUTE}
, current minute.
{SERVER_NAME}
, server's name (localhost
, test.com
...).
{CALLING_FUNCTION}
, the function that called the logger.
{CALLING_FILE}
, the file that called the logger.
{CALLING_LINE}
, the line that called the logger.
{CALLING_CLASS}
, the class that called the logger.
{CALLING_TYPE}
, ->
if the logger was called by an object, ::
if it was called statically.
{LEVEL}
, the level on which the log has been called.
{LOG}
, the string to log.
A string being the format that each log entry will have, you can add the following placeholders:
{YEAR}
, current year.
{MONTH}
, current month.
{DAY}
, current day.
{HOUR}
, current hour.
{MINUTE}
, current minute.
{SERVER_NAME}
, server's name (localhost
, test.com
...).
{CALLING_FUNCTION}
, the function that called the logger.
{CALLING_FILE}
, the file that called the logger.
{CALLING_LINE}
, the line that called the logger.
{CALLING_CLASS}
, the class that called the logger.
{CALLING_TYPE}
, ->
if the logger was called by an object, ::
if it was called statically.
{LEVEL}
, the level on which the log has been called.
{LOG}
, the string to log.
An array containing the elements that will be logged, you can get a full list
of available values in the class \Psr\Log\LogLevel
The method log
performs the actual logging and accepts as parameter the log level
(see \Psr\Log\LogLevel
for a list of possible values) and the string to log.
There are also 8 methods for logging in a specific category:
emergency
alert
critical
error
warning
notice
info
debug
All of them accepts as parameter the last 2 parameters of the log
method.
Example:
$Logger = new Logger(
$Database,
"logs",
[
"date" => "{YEAR}-{MONTH}-{DAY} {HOUR}:{MINUTE}:{SECOND}",
"caller" => "{CALLER_CLASS}{CALLER_TYPE}{CALLER_FUNCTION} ({CALLER_FILE}:{CALLER_LINE})",
"level" => "{LEVEL}",
"message" => "{LOG}"
],
[
\Psr\Log\LogLevel::EMERGENCY,
\Psr\Log\LogLevel::ALERT,
\Psr\Log\LogLevel::CRITICAL,
\Psr\Log\LogLevel::ERROR,
\Psr\Log\LogLevel::WARNING,
\Psr\Log\LogLevel::NOTICE,
\Psr\Log\LogLevel::INFO,
\Psr\Log\LogLevel::DEBUG
]
);
$Logger->debug("test"); // INSERT INTO `logs` (`date`, `caller`, `level`, `message`) VALUES ('0000-00-00 00:00:00', '', 'debug', 'test');
$Logger->info("test", [
"date" => "{HOUR}:{MINUTE}:{SECOND}",
"caller" => "{CALLER_CLASS}{CALLER_TYPE}{CALLER_FUNCTION} ({CALLER_FILE}:{CALLER_LINE})",
"level" => "{LEVEL}",
"message" => "{LOG}"
]); // INSERT INTO `logs` (`date`, `caller`, `level`, `message`) VALUES ('00:00:00', '', 'debug', 'test');
Type hierarchy
-
alexya-framework/logger dev-master 3.0.5