ThinkPHP集成Seaslog——高性能日志系统
本文内容
1、为什么需要日志功能呢
2、学会使用Seaslog
3、在实际项目中使用Seaslog
一、什么是日志系统
1、记录系统运行的信息;
2、系统日志、应用日志、安全日志;
二、为什么需要日志功能
1、了解系统运行情况;
2、记录用户操作信息;
3、搜集数据;
三、为什么选择Seaslog
1、高性能;
Seaslog是C语音开发的,自带缓冲池,日常先写入内存,达到一定量才一次性写入文件中,不用频繁的写入日志。
2、无需配置;
3、功能完善,使用简单;(分模块日志,具有统计、分析功能)
四、安装Seaslog
1、下载地址:pecl.php.net
2、搜索seaslog
3、安装步骤
解压后在目录中运行:
./configure --with-php-config=/usr/localphp/bin/php-config
make && make install
编译完毕,会提示安装的位置:
Installing shared extensions: XXXXXXXX
把seaslog.so文件加入php.ini中。
extension = "seaslog.so"
重启下服务器,然后查看phpinfo中的Seaslog;
4、配置seaslog
在seaslog作者的github主页中可以找到推荐在配置,直接复制到php.ini中即可。(删除掉注释的说明文字)重启下系统,查看phpinfo。
五、Seaslog的常用方法
1、配置方法:
setBasePath,getBasePath,setLogger,getLastLogger
2、写日志方法:
log,info,notice,debug,warning,error
3、读取日志方法
analyzerCount,analyzerDetail
4、使用演示
a、看基础路径,静态方法不需要实例化
<?php
Seaslog::getBasePath();
?>
b、设置基础路径方法
<?php
Seaslog::setBasePath('/home/wwwroot/default/seaslog/log');
//注意seaslog日志目录要有写入权限
Seaslog::getBasePath();
?>
c、一个网站有多个模块的log设置
<?php
Seaslog::setBasePath('/home/wwwroot/default/seaslog/log');
Seaslog::getBasePath();
Seaslog::setlogger('Web');
//设置后,Web模块的日志就会存放到“/home/wwwroot/default/seaslog/log/Web”目录下。
Seaslog::debug('it is a debug test!'); //写入一条日志进行测试,或者以下方式记录日志
Seaslog::log('debug','this is for add a debug log'); //添加debug日志
Seaskig::log('info','this is for add a info log'); //添加info日志
$data = Seaslog::analyzerCount(); //统计日志条数,可以加入参数:日志级别、日志存储的路径、关键词
print_r($data);
$data2 = Seaslog::analyzerDetail('debug'); //查看日志详情,需要传入参数,例如debug。
print_r($data2);
?>
六、ThinkPHP中集成Seaslog
1、方法一:控制器中调用debug()方法;
2、方法二:修改TP默认的日志记录方法;
七、实际项目中使用Seaslog
建立一个存储日志的文件夹和日志模块目录,并赋予权限;
<?php
session_start();
include 'lib/init.php';
Seaslog::log('DEBUG','new customer,SessionID:'.session_id());
//记录新访问者信息
Seaslog::log('INFO',json_encode($data));
?>
八、注意事项
1、虚拟主机中不能使用,除非你能掌握服务器的配置来配置seaslog。
2、Seaslog是本地存储,不能使用集群服务器。