A-A+

ThinkPHP集成Seaslog——高性能日志系统

2016年02月20日 Linux, php, 工具软件 暂无评论 阅读 6,467 views 次

本文内容

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是本地存储,不能使用集群服务器。

标签:

给我留言