php 笔记日志系统,高性能的PHP日志系统—SeasLog

为什么需要日志功能

1.没有日志,只能等到用户反馈,系统不能用,才可以

3收集:比如500的错误,知道这个错误是什么引起的

查看全部

3-1 在Thinkphp中集成SeasLog(有2种方法)

1.直接在控制器中去调用SeasLog对应的方法。比如需要记录debug的信息直接写debug的方法。

SeasLog::info('test');

2.既然用了框架,那么就依托框架的特性去集成。Thinkphp中有一个Log.class.php(日志处理类)的文件。那么要集成SeasLog,首先要把配置文件Home/Conf/config.php里默认的日志驱动改一下。

'LOG_TYPE'=='SeasLog',

第2个配置项就是日志所存储的空间,在根目录新建一个log文件夹来存储日志。

'LOG_PATH'=>'C:/wamp/www/mooc/Think/log'

然后在ThinkPHP/Library/Think/Log的驱动文件夹Driver上新建一个SeasLog.class.php的类文件。

class SeasLog {

// 实例化并传入参数

public function __construct(){

\SeasLog::setBasePath(C('LOG_PATH'));

\SeasLog::setLogger('Home');

}

/**

* 日志写入接口

* @access public

* @param string $log 日志信息

* @param string $destination 写入目标

* @return void

*/

public function write($log,$lever='DEBUG') {

\SeasLog::debug($log);

}

}

查看全部

SeasLog是一个C语言编写的PHP扩展,提供一组规范标准的功能函数,在PHP项目中方便、规范、高效地写日志,以及快速地读取和查询日志

查看全部

3-1 在Thinkphp中集成SeasLog(有2种方法)

1.直接在控制器中去调用SeasLog对应的方法。比如需要记录debug的信息直接写debug的方法。

SeasLog::info('test');

2.既然用了框架,那么就依托框架的特性去集成。Thinkphp中有一个Log.class.php(日志处理类)的文件。那么要集成SeasLog,首先要把配置文件Home/Conf/config.php里默认的日志驱动改一下。

'LOG_TYPE'=='SeasLog',

第2个配置项就是日志所存储的空间,在根目录新建一个log文件夹来存储日志。

'LOG_PATH'=>'C:/wamp/www/mooc/Think/log'

然后在ThinkPHP/Library/Think/Log的驱动文件夹Driver上新建一个SeasLog.class.php的类文件。

class SeasLog {

// 实例化并传入参数

public function __construct(){

\SeasLog::setBasePath(C('LOG_PATH'));

\SeasLog::setLogger('Home');

}

/**

* 日志写入接口

* @access public

* @param string $log 日志信息

* @param string $destination 写入目标

* @return void

*/

public function write($log,$lever='DEBUG') {

\SeasLog::debug($log);

}

}

查看全部

那么因为ThinkPHP本身的日志系统对于日志的级别区分不是特别的好,所以可以扩展一下。希望达到按不同的日志级别去记录的效果。

在Log.class.php中新建一个l的方法

static function l($message,$level='INFO') {

if(!self::$storage){

$type = $type?:C('LOG_TYPE');

$class = 'Think\\Log\\Driver\\'. ucwords($type);

self::$storage = new $class();

}

self::$storage->l($message,$level);

}

在SeasLog.class.php中新建一个l的方法

public function l($message,$level='INFO') {

//调用SeasLog快捷存储日志的方法

\SeasLog::log($level,$message);

}

在IndexController中的index()方法里

#\Think\Log::l('it is test','INFO');//输出INFO的信息

\Think\Log::l('it is test','DEBUG');//输出DEBUG的信息

查看全部

SEASlog的常用方法

查看全部

/*//2-2 SeasLog常用方法

//1.这个类是静态方法,所以不需要实例化

SeasLog::setBasePath('C:/wamp/www/mooc/seaslog/log');//设置基础路径的方法

//echo SeasLog::getBasePath();//查看基础路径是什么

//2.不同的模块存到不同的路径下

SeasLog::setLogger('Web');

//SeasLog::setLogger('Api');

//3.写一条日志到文件当中

SeasLog::debug('It is debug info');//debug信息

SeasLog::info('It is info');//info信息

SeasLog::notice('It is notice');//notice信息

//4.在程序当中查看日志记录情况

//$data = SeasLog::analyzerCount();//日志统计

//print_r($data);

//5.查看日志详情

//$data = SeasLog::analyzerDetail('info');

//print_r($data);

//6.全局常量的使用,SEASLOG_DEBUG='debug'

//$data = SeasLog::analyzerDetail(SEASLOG_DEBUG);

//print_r($data);*/

//7.作者提供了一个通用的方法记录日志

SeasLog::log('debug','debugdebug');

SeasLog::log('info','infoinfo');

查看全部

phpize运行过后多出一个configure文件

查看全部

pecl.php.net php常用扩展网站 搜索seaslog

phpize php自带的一个解压php扩展的命令

make && make install 编译和安装

php.ini extension= "seaslog.so"

seaslog扩展 按照正常的php扩展来安装,配置项要到github里找,修改log存储基本目录

查看全部

SeasLog的优点:1、高性能2、无需配置、3、功能完善、使用简单

查看全部

对于普通用户,日志功能不会带来更多好处,而且会给系统增加更多的负担。

为什么需要日志功能

1.了解系统运行情况(比如一个用户进入我们网站时遇到404错误或其他500错误,或者对接的短信API接口崩溃时,我们可以第一时间知道这个消息,否则需要等到用户反馈才得知);

2.记录用户操作信息(比如有一个电子商城,我们希望知道用户在下单时他传的所有参数是什么,我们也希望知道返回给用户的所有参数是什么。这样可以更好的知道系统运作的流程);

3.收集数据(比如当网站发生了一些500的系统错误,我们希望知道这个500的错误是因为什么引起的,而且发生了多少次,这样也更加方便我们去优化系统的性能)。

查看全部

什么是日志系统

1.记录系统运行时的信息。

2.系统日志:网站总体崩溃或者硬件出现问题时需要记录的一些系统级别的日志;

应用程序日志:MySQL数据库崩溃了或者短信接口崩溃了;

安全日志:MySQL受到了一些入侵或者MySQL注入时需要记录的安全方面的日志信息。

3.日志功能不应该影响到用户的正常使用。

查看全部

0

采集

收起

采集自:林静听蝉

2018-03-04

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值