This article mainly introduces PHP debugging functions and log recording functions. The functions shared in this article are used in their own projects. For more information, see
This article mainly introduces PHP debugging functions and log recording functions. The functions shared in this article are used in their own projects. For more information, see
Debugging is often required during website program development, and running logs need to be recorded during the release phase to facilitate fault discovery and event restoration. This requires debugging and logging.
The following are the functions used for debugging and the functions used to record errors.
It is easy to use and automatically generates log files by date:
The Code is as follows:
// When debugging, multiple parameters can be:
Sysdebug ("hello ");
Sysdebug ("hello", "tiger is coming now ");
// The error records are the same:
Syserror ("error ");
Syserror ("error", "unfortunately tiger is dead", "we are sad ");
Php debugging and logging functions are as follows:
The Code is as follows:
/**
* Record debugging information
*/
Function sysdebug ($ msg ){
If (defined ("DEBUG_MODE ")){
// TODO detection debugging switch, which is not printed upon release
$ Params = func_get_args ();
$ Traces = debug_backtrace ();
$ Trace = array_pop ($ traces );
Sysrecord ($ params, $ trace, 'debug ');
}
}
/**
* Record error information
*/
Function syserror ($ msg ){
$ Params = func_get_args ();
$ Traces = debug_backtrace ();
$ Trace = array_pop ($ traces );
Sysrecord ($ params, $ trace, 'error ');
}
/**
* Write a file
* @ Ignore
*/
Function sysfile ($ filename, $ msg, $ mode = null ){
$ Path = dirname ($ filename );
If (! File_exists ($ path )){
Mkdir ($ path, 0666, true );
}
$ Flag = LOCK_EX;
If ($ mode ){
Switch ($ mode ){
Case "add ":
$ Flag = FILE_APPEND | LOCK_EX;
Break;
Case "":
$ Flag = FILE_APPEND | LOCK_EX;
Break;
Default:
Break;
}
}
File_put_contents ($ filename, $ msg, $ flag );
}
/**
* Record information
* @ Ignore
*/
Function sysrecord ($ params, $ trace, $ level ){
$ Path = dirname (_ FILE _). "/logs /";
// Modify the TODO log storage directory.
$ File = $ trace ['file'];
$ Func = $ trace ['function'];
If ($ func = "sys $ level "){
$ Func = '';
}
$ Filename = $ path. "$ level/". date ("Y-m-d"). '. log ';
$ Msg = "[". date ("m-d H: I: s "). "] File :\"". basename ($ file ). "\" Func :\"". $ func. "\" Msg :". json_encode ($ params ). "\ r \ n ";
Sysfile ($ filename, $ msg, 'add ');
}