将log信息写入服务器中的log文件文件,折腾了一大圈终于找到了解决方案,具体内容如下:
折腾:
【记录】php中如何写类和如何使用类
期间,需要整理出一份,可配置的,通用的,log系统。
支持写入log信息到log文件中。
【折腾过程】
1.搜:
php log to file
参考:
PHP: error_log – Manual
PHP: syslog – Manual
How to create logs with PHP – Web Services Wiki
Write to a log file with PHP | Redips spideR Net
下载代码:
Download redips10.tar.gz
2.期间:
【已解决】PHP中函数前面加上at符号@的作用
3.然后用代码:
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); } }} ?>
然后测试代码:
<?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();?>
新闻热点
疑难解答