当前位置: 首页 > 工具软件 > SeasLog > 使用案例 >

SeasLog

楚瑞
2023-12-01

一、安装(略)

二、php.ini


[SeasLog]
;configuration for php SeasLog module
extension=seaslog.so

;默认log根目录
seaslog.default_basepath="/var/log/www"

;默认logger目录
;seaslog.default_logger="default"

;日期格式配置 默认"Y-m-d H:i:s"
seaslog.default_datetime_format="Y-m-d H:i:s"

;日志格式模板 默认"%T | %L | %P | %Q | %t | %M"
seaslog.default_template="%T | %L | %H | %R | %C | %Q | %M"

;是否以type分文件 1是 0否(默认)
seaslog.disting_type=0

;是否每小时划分一个文件 1是 0否(默认)
seaslog.disting_by_hour=0

;是否启用buffer 1是 0否(默认)
seaslog.use_buffer=1

;buffer中缓冲数量 默认0(不使用buffer_size)
seaslog.buffer_size=100

;记录日志级别,数字越大,根据级别记的日志越多。
;0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL
;默认8(所有日志)
;
;   注意, 该配置项自1.7.0版本开始有变动。
;   在1.7.0版本之前, 该值数字越小,根据级别记的日志越多:
;   0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency
;   1.7.0 之前的版本,该值默认为0(所有日志);
seaslog.level=8

;日志函数调用回溯层级
;影响预定义变量 %F 中的行数
;默认0
seaslog.recall_depth=0

;自动记录错误 默认1(开启)
seaslog.trace_error=1

;自动记录异常信息 默认0(关闭)
seaslog.trace_exception=0

;日志存储介质 1File 2TCP 3UDP (默认为1)
seaslog.appender=1

;写入重试次数
;默认0(不重试)
seaslog.appender_retry=0

;接收ip 默认127.0.0.1 (当使用TCP或UDP时必填)
seaslog.remote_host="127.0.0.1"

;接收端口 默认514 (当使用TCP或UDP时必填)
seaslog.remote_port=514

;过滤日志中的回车和换行符 (默认为0)
seaslog.trim_wrap=0

;是否开启抛出SeasLog自身异常  1开启(默认) 0否
seaslog.throw_exception=1

;是否开启忽略SeasLog自身warning  1开启(默认) 0否
seaslog.ignore_warning=1

三、使用

\SeasLog::setBasePath('/home/seaslog/wm-market');
\SeasLog::setLogger('default');

$json = json_encode(['msg' => 'index 测试中文,no unicode_encode'], JSON_UNESCAPED_UNICODE);
\SeasLog::info($json);

echo "<pre>";
echo \SeasLog::getRequestID(), "<br>";//获取当前请求的uniqid
echo \SeasLog::getRequestID(), "<br>";
\SeasLog::debug('111');
\SeasLog::info('2222');
print_r(\SeasLog::getBuffer());//或如所有待写入日志(buffer中)

四、日志统计

$countResult_1 = \SeasLog::analyzerCount();
$countResult_2 = \SeasLog::analyzerCount(SEASLOG_INFO);
$countResult_3 = \SeasLog::analyzerCount(SEASLOG_INFO,date('Ymd',time()));

var_dump($countResult_1,$countResult_2,$countResult_3);
die;

//        \SeasLog::info('this is a info log');
//        \SeasLog::notice('this is a notice log');
//        \SeasLog::warning('this is a warning log');
//        \SeasLog::error('this is a error log');
//        \SeasLog::critical('this is a critical log');
//        \SeasLog::alert('this is a alert log');
//        \SeasLog::emergency('this is a emergency log');

五、注

1.注意目录权限;
2.SeaseLog Fatal Error后将退出, 且不能使用;
3.TCP和UDP方式不建议使用, 因为网络请求会占用系统处理时间; 目前主流的应该是另起日志监测服务读取日志文件到kafka/ES;

六、中文文档

https://github.com/SeasX/SeasLog/blob/master/README_zh.md

 类似资料:

相关阅读

相关文章

相关问答