Logs
Logs exported procedure
The logs functionaliy is intended for logging information during the execution of stored procedures.
To start a log of a specific activity:
Base_Logs_Prime( $Sid, @CALL_ID, "DEBUG", "Proc_name", "Message" );
Append later log messages associated with that call.
Base_Logs_Append( $Sid, @CALL_ID, "DEBUG", "Proc_name", "Message" );
Exported Procedures
base_logs
DROP PROCEDURE Base_Logs;
DELIMITER //
CREATE PROCEDURE Base_Logs
(
$sid TEXT,
$AFTER_LOG_ID INT
)
SQL SECURITY INVOKER
COMMENT 'EXPORTABLE'
BEGIN
CALL _Base_Users_Authorise_Sessionid( $sid, @email, @USER, @idtype );
IF NOT( "ADMIN" = @idtype ) THEN
CALL Notice( 'Base_Logs: INVALID_AUTHORISATION' );
ELSEIF $AFTER_LOG_ID THEN
SELECT *
FROM base_logs
WHERE $AFTER_LOG_ID < LOG_ID
ORDER BY LOG_ID
LIMIT 50000;
ELSE
SELECT *
FROM
(
SELECT *
FROM base_logs
ORDER BY LOG_ID DESC
LIMIT 50000
) AS S1
ORDER BY CALL_ID, LOG_ID;
END IF;
END
//
DELIMITER ;
Logs Internal procedures
base_logs_prime
DROP PROCEDURE _Base_Logs_Prime;
DELIMITER //
CREATE PROCEDURE _Base_Logs_Prime
(
$sid TEXT,
INOUT
$CALL_ID INT,
$level CHAR(20),
$source TEXT,
$message TEXT
)
SQL SECURITY INVOKER
BEGIN
SELECT MAX( CALL_ID ) INTO $CALL_ID FROM base_logs;
IF ISNULL( $CALL_ID ) THEN
SET $CALL_ID = 0;
END IF;
SET $CALL_ID = $CALL_ID + 1;
INSERT INTO base_logs
( LOG_ID, CALL_ID, sessionid, logged, level, source, message )
VALUES
( 0, $CALL_ID, $sid, NOW(), $level, $source, $message );
END
//
DELIMITER ;
base_logs_append
DROP PROCEDURE _Base_Logs_Append;
DELIMITER //
CREATE PROCEDURE _Base_Logs_Append
(
$sid TEXT,
$CALL_ID INT,
$level CHAR(20),
$source TEXT,
$message TEXT
)
SQL SECURITY INVOKER
BEGIN
IF NOT $CALL_ID THEN
CALL _Base_Logs_Prime( $sid, $CALL_ID, $level, $source_message );
END IF;
INSERT INTO base_logs
( LOG_ID, CALL_ID, sessionid, logged, level, source, message )
VALUES
( 0, $CALL_ID, $sid, NOW(), $level, $source, $message );
END
//
DELIMITER ;