½«logÐÅϢдÈeþÎñÆ÷ÖеÄlogÎļþÎļþ£¬ÕÛÌÚÁËÒ»´oȦÖÕÓÚÕÒµ½Á˽a¾o½°¸£¬¾ßÌaÄÚÈÝÈçÏ£º
ÕÛÌÚ£º
¡¾¼Ç¼¡¿phpÖÐÈçºÎдÀaºÍÈçºÎʹÓÃÀa
ÆÚ¼a£¬ÐeÒªÕuÀi³oÒ»*Ý£¬¿ÉÅaÖõģ¬Í¨Óõģ¬logϵͳ¡£
Ö§³ÖдÈelogÐÅÏ¢µ½logÎļþÖС£
¡¾ÕÛÌÚ¹ý³Ì¡¿
1.ËÑ£º
php log to file
²Î¿¼£º
PHP: error_log ¨C Manual
PHP: syslog ¨C Manual
How to create logs with PHP ¨C Web Services Wiki
Write to a log file with PHP | Redips spideR Net
ÏÂÔØ´uÂe£º
Download redips10.tar.gz
2.ÆÚ¼a£º
¡¾Òѽa¾o¡¿PHPÖк¯ÊýÇ°Ãae¼ÓÉÏat*uºÅ@µÄ×÷ÓÃ
3.È»ºoÓôuÂe£º
crifanLib.php
<?php
/*
[Filename]
crifanLib.php
[Function]
crifan's php lib, implement common functions
[Author]
Crifan Li
[Contact]
http://www.crifan.com/contact_me/
[Note]
1.online see code:
http://code.google.com/p/crifanlib/source/browse/trunk/php/crifanLib.php
[TODO]
[History]
[v1.0]
1.initial version, need clean up later
*/
class crifanLib {
private $logFile;
private $logFp;
/*
Init log file
*/
function logInit($inputLogFile = null){
// set default log file name
// in case of Windows set default log file
//http://stackoverflow.com/questions/1482260/how-to-get-the-os-on-which-php-is-running
//http://php.net/manual/zh/function.php-uname.php
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$defautLogFile = 'C:/php/defLogFile.log';
}
// set default log file for Linux and other systems
else {
$defautLogFile = '/tmp/defLogFile.log';
}
$this->logFile = $inputLogFile ? $inputLogFile : $defautLogFile;
// open log file for writing only and place file pointer at the end of the file
// (if the file does not exist, try to create it)
$this->logFp = fopen($this->logFile, 'a') or exit("Can't open $this->logFile!");
}
/*
Write log info to file
*/
function logWrite($logContent){
// if file pointer doesn't exist, then open log file
if (!is_resource($this->logFp)) {
$this->logInit();
}
// define script name
$script_name = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
// define current time and suppress E_WARNING if using the system TZ settings
// (don't forget to set the INI setting date.timezone)
$time = @date('[Y-m-d H:i:s] ');
// write current time, script name and message to the log file
fwrite($this->logFp, "$time ($script_name) $logContent" . PHP_EOL);
}
/*
Deinit log
*/
function logDeinit(){
if (is_resource($this->logFp)) {
fclose($this->logFp);
}
}
}
?>
È»ºo²aÊÔ´uÂe£º
<?php
/*
Author: Crifan Li
Version: 2015-07-27
Contact: http://www.crifan.com/about/me/
Function: Wechat get access token
*/
include_once "crifanLib.php";
//test log
$crifanLib = new crifanLib();
$crifanLib->logInit("/xxx/access_token/crifanLibTest.log");
$crifanLib->logWrite("This is crifanLib log test message.");
$crifanLib->logDeinit();
?>
È»ºoÈ¥Ö´ÐжÔÓ¦µÄ´uÂe£º
http://xxx/access_token/wx_access_token.php
Ò³ÃaeÊÇûÓÐÈκÎÊa³oµÄ£º
È»ºoµÄÈ*Éu³ÉÁËlogÎļþÁË£º
root@chantyou:php# cd access_token/
root@chantyou:access_token# ll
total 16
-rwxrwxrwx 1 root root 9335 Jul 27 17:51 crifanLib.php
-rwxrwxrwx 1 root root 567 Jul 27 17:52 wx_access_token.php
root@chantyou:access_token# ll
total 20
-rwxrwxrwx 1 root root 9335 Jul 27 17:51 crifanLib.php
-rw-r--r-- 1 apache apache 77 Jul 27 17:56 crifanLibTest.log
-rwxrwxrwx 1 root root 567 Jul 27 17:52 wx_access_token.php
root@chantyou:access_token# cat crifanLibTest.log
[2015-07-27 10:10:33] (wx_access_token) This is crifanLib log test message.
root@chantyou:access_token#
¡¾×¢Òa¡¿
Òª¼ÇµÃ¸ø¶ÔÓ¦µÄ£¨´Ë´¦ÊÇLinux*þÎñÆ÷ÖеĶÔÓ¦µÄÎļþ¼ÐÌi¼ÓдȨÏÞ£º
root@chantyou:php# ll
total 48
drwxr-xr-x 2 root root 4096 Jul 27 17:55 access_token
-rwxr-xr-x 1 root root 1091 Sep 25 2014 errorCode.php
-rw-r--r-- 1 root root 2230 Jun 10 14:16 MicromsgVerify.php
-rwxr-xr-x 1 root root 4288 Sep 25 2014 pkcs7Encoder.php
-rwxr-xr-x 1 root root 452 Sep 15 2014 Readme.txt
-rwxr-xr-x 1 root root 724 Sep 22 2014 sha1.php
drwxr-xr-x 2 root root 4096 Jul 20 12:34 wechat_encypt
-rwxr-xr-x 1 root root 5327 Sep 15 2014 WXBizMsgCrypt.php
-rwxrwxrwx 1 root root 2455 Jul 16 18:06 wx_didaosuzhou.php
-rwxr-xr-x 1 root root 1346 Sep 22 2014 xmlparse.php
root@chantyou:php# chmod ugo+wx access_token/
root@chantyou:php# ll
total 48
drwxrwxrwx 2 root root 4096 Jul 27 17:55 access_token
-rwxr-xr-x 1 root root 1091 Sep 25 2014 errorCode.php
-rw-r--r-- 1 root root 2230 Jun 10 14:16 MicromsgVerify.php
-rwxr-xr-x 1 root root 4288 Sep 25 2014 pkcs7Encoder.php
-rwxr-xr-x 1 root root 452 Sep 15 2014 Readme.txt
-rwxr-xr-x 1 root root 724 Sep 22 2014 sha1.php
drwxr-xr-x 2 root root 4096 Jul 20 12:34 wechat_encypt
-rwxr-xr-x 1 root root 5327 Sep 15 2014 WXBizMsgCrypt.php
-rwxrwxrwx 1 root root 2455 Jul 16 18:06 wx_didaosuzhou.php
-rwxr-xr-x 1 root root 1346 Sep 22 2014 xmlparse.php
*ñÔo»a±¨´iµÄ£º
Can't open /xxx/access_token/crifanLibTest.log file!
4.²»¹ýͻȻÏeÆðÀ´£º
֮ǰÒѾѧ¹ýÁË£¬
file_put_contents
¾Í¿ÉÒÔÌae´uÁË£ºfopen£¬fwrite£¬fcloseÁË¡£
ËuÒÔÔÙÈ¥ÓÅ»¯Îª£º
crifanLib.php
<?php
/*
[Filename]
crifanLib.php
[Function]
crifan's php lib, implement common functions
[Author]
Crifan Li
[Contact]
http://www.crifan.com/contact_me/
[Note]
1.online see code:
http://code.google.com/p/crifanlib/source/browse/trunk/php/crifanLib.php
[TODO]
[History]
[v2015-07-27]
1.add logInit, logWrite
[v1.0]
1.initial version, need clean up later
*/
class crifanLib {
private $logFile;
private $logFp;
/*
Init log file
*/
function logInit($inputLogFile = null){
// set default log file name
// in case of Windows set default log file
//http://stackoverflow.com/questions/1482260/how-to-get-the-os-on-which-php-is-running
//http://php.net/manual/zh/function.php-uname.php
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$defautLogFile = 'C:/php/defLogFile.log';
}
// set default log file for Linux and other systems
else {
$defautLogFile = '/tmp/defLogFile.log';
}
$this->logFile = $inputLogFile ? $inputLogFile : $defautLogFile;
}
/*
Write log info to file
*/
function logWrite($logContent){
// define script name
$scriptName = pathinfo($_SERVER['PHP_SELF'], PATHINFO_FILENAME);
// define current time and suppress E_WARNING if using the system TZ settings
// (don't forget to set the INI setting date.timezone)
$timeStr = @date('[Y-m-d H:i:s]');
// write current time, script name and message to the log file
file_put_contents($this->logFile, "$timeStr ($scriptName) $logContent" . PHP_EOL, FILE_APPEND);
}
}
?>
²aÊÔÎļþΪ£º
<?php
/*
Author: Crifan Li
Version: 2015-07-27
Contact: http://www.crifan.com/about/me/
Function: test crifanLib log
*/
include_once "crifanLib.php";
//test log
$crifanLib = new crifanLib();
$crifanLib->logInit("/xxx/logTest.log");
$crifanLib->logWrite("This is crifanLib log test message using file_put_contents");
?>
Ч¹uÊÇ£º
root@chantyou:access_token# ll
total 16
-rw-r--r-- 1 root root 9524 Jul 27 18:16 crifanLib.php
-rwxrwxrwx 1 root root 561 Jul 27 18:18 wx_access_token.php
root@chantyou:access_token# ll
total 20
-rw-r--r-- 1 root root 9524 Jul 27 18:16 crifanLib.php
-rw-r--r-- 1 apache apache 76 Jul 27 18:19 logTest.log
-rwxrwxrwx 1 root root 561 Jul 27 18:18 wx_access_token.php
root@chantyou:access_token# cat logTest.log
[2015-07-27 12:05:47] (wx_access_token) This is crifanLib log test message using file_put_contents
root@chantyou:access_token#
Èçͼ£º
×¢£º
ÆÚ¼a²Î¿¼£º
PHP: is_resource ¨C Manual
¡¾×ܽa¡¿
1.´Ë´¦¿ÉÒÔͨ¹ý£º
fopen´´½¨logÎļþ
fwriteдÈeÎļþÐÅÏ¢
fclose¹Ø±ÕÎļþ
ȥʵÏÖlogÐÅϢдÈeµ½ÎļþÖеġ£
2.¸uºÃµÄ×o*¨ÊÇ£º
Ö±½ÓÓøu*½±aµÄ
file_put_contentsÖ±½ÓÊa³oÄÚÈݵ½logÎļþ
¼´¿É¡£
ÒÔÉϾÍÊǽ«logÐÅϢдÈe*þÎñÆ÷ÖеÄlogÎļþÎļþÈ«²¿ÄÚÈÝ£¬Ï£Íu´o¼Òϲ»¶¡£