首页 > 开发 > PHP > 正文

PHP如何将log信息写入服务器中的log文件

2024-05-04 22:35:34
字体:
来源:转载
供稿:网友

将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();?>            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表