PHPÈçºÎ½«logÐÅϢдÈë·þÎñÆ÷ÖеÄlogÎļþ

5年以前  |  阅读数:1057 次  |  编程语言:PHP 

½«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¼Òϲ»¶¡£

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例