layout: post
title: "PHP高性能日志SeasLog"
date: 2016-04-29 09:59:55 +0800
comments: true
categories: [PHP]
PHP高性能日志SeasLog
一、什么是SeasLog
SeasLog是一个C语言编写的PHP扩展,提供一组规范标准的功能函数,在PHP项目中方便、规范、高效地写日志,以及快速地读取和查询日志。
二、为什么需要日志系统
- 了解系统运行情况
- 记录用户操作信息
- 收集需要
三、为什么选择SeasLog
- 高性能 带有缓冲池功能。
- 无需配置
- 功能完善,使用简单
四、SeasLog安装
到[pecl](http://pecl.php.net/)搜索seaslog并下载
解压后
可自行编译。
$ cd seaslog //进到解压目录
$ phpize
$ ./configure --with-php-config=/path/to/php-config //path to 为你的PHP安装目录
$ make && make install
当然,使用PECL管理工具会更方便:
$ pecl install seaslog
seaslog.ini的配置
; configuration for php SeasLog module
extension = seaslog.so
seaslog.default_basepath = /log/seaslog-test ;默认log根目录
seaslog.default_logger = default ;默认logger目录
seaslog.disting_type = 1 ;是否以type分文件 1是 0否(默认)
seaslog.disting_by_hour = 1 ;是否每小时划分一个文件 1是 0否(默认)
seaslog.use_buffer = 1 ;是否启用buffer 1是 0否(默认)
seaslog.buffer_size = 100 ;buffer中缓冲数量 默认0(不使用buffer_size)
seaslog.level = 0 ;记录日志级别 默认0(所有日志)
需要将这里面的数据写到php.ini中去
seaslog.disting_type = 1 开启以type分文件,即log文件区分info\warn\erro
seaslog.disting_by_hour = 1 开启每小时划分一个文件
seaslog.use_buffer = 1 开启buffer。默认关闭。当开启此项时,日志预存于内存,当请求结束时(或异常退出时)一次写入文件。
seaslog.buffer_size = 100 设置缓冲数量为100. 默认为0,即无缓冲数量限制.当buffer_size大于0时,缓冲量达到该值则写一次文件.
seaslog.level = 3 记录的日志级别.默认为0,即所有日志均记录。当level为1时,关注debug以上级别(包括debug),以此类推。level大于8时,所有日志均不记录。
默认常量有哪些
遵循PSR-3标准,SeasLog 共将日志分成8个级别
SEASLOG_DEBUG "debug"
SEASLOG_INFO "info"
SEASLOG_NOTICE "notice"
SEASLOG_WARNING "warning"
SEASLOG_ERROR "error"
SEASLOG_CRITICAL "critical"
SEASLOG_ALERT "alert"
SEASLOG_EMERGENCY "emergency"
都提供哪些方法
<?php
/**
* @author neeke@php.net 云智慧
*/
class SeasLog
{
public function __construct()
{
#SeasLog init
}
public function __destruct()
{
#SeasLog distroy
}
/**
* 设置basePath
* @param $basePath
* @return bool
*/
static public function setBasePath($basePath)
{
return TRUE;
}
/**
* 获取