Uninote
Uninote
用户根目录
每日点滴
 php seaslog
php seaslog
E:\uninote\mynote\basic\web\tests\seaslog.php
E:\uninote\mynote\basic\runtime\seaslog
E:\software\programming\php\5.6.30\php_seaslog-1.8.4-5.6-ts-vc11-x64.zip
安装 Php模块 seaslog
http://dev.rongyipiao.com/book/1089785219#362
https://www.imooc.com/qadetail/119739
eson 日志系统
关于使用PHP扩展SeasLog日志系统
http://dev.rongyipiao.com/book/1092917203#281
官方文档: SeasLog Supports
https://github.com/SeasX/SeasLog
;   注意, 该配置项自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
SHA-1: 2cde9bd61079f8b464db5536ab306a848dbbd2ec
* 【更新】- 统一日志系统
SHA-1: fd89d5794a778b9b09ddcd369ad6fe3276d1f1d3
* bug- 优化重构seaslog日志系统代码简化
lv1= lv2= type=todo
不同的logger如何配置不同的option,如template?
输出到多个logger? last logger?
send remote?
这个是日志记录时间,也就是记录的git push这条命令执行完成后的时间,而不是执行之前的时间:
简单封装,如果设置到/tmp等地方,还需要权限
SeasLog::setBasePath(__DIR__ . "/../../../../../runtime/seaslog");
function slog($content, $params = [], $logger = "default")
{
    SeasLog::info($content, $params, $logger);
}

日志分析demo

http://localhost:222/tests/seaslog.php
http://dev.rongyipiao.com/tests/seaslog.php
这个使用find等shell命令来做的,日志大了会有性能问题。

自定义日志模板

很多朋友在使用过程中提到自定义日志模板的需求,于是SeasLog自1.7.2版本开始,拥有了这个能力,允许用户自定义日志的模板, 同时在模板中可以使用SeasLog预置的诸多预设变量,参照预设变量表。
日志模板说明
模板默认为:seaslog.default_template = "%T | %L | %P | %Q | %t | %M"
意味着,默认的格式为{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}
如果自定义的格式为:seaslog.default_template = "[%T]:%L %P %Q %t %M"
那么,日志格式将被自定义为:[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}
预设变量表
SeasLog提供了下列预设变量,可以直接使用在日志模板中,将在日志最终生成时替换成对应值。
%L - Level 日志级别。
%M - Message 日志信息。
%T - DateTime 如2017-08-16 19:15:02,受seaslog.default_datetime_format影响。
%t - Timestamp 如1502882102.862,精确到毫秒数。
%Q - RequestId 区分单次请求,如没有调用SeasLog::setRequestId($string)方法,则在初始化请求时,采用内置的static char *get_uniqid()方法生成的惟一值。
%H - HostName 主机名。
%P - ProcessId 进程ID。
%D - Domain:Port 域名:口号,如www.cloudwise.com:8080; Cli模式下为cli。
%R - Request URI 请求URI,如/app/user/signin; Cli模式下为入口文件,如CliIndex.php。
%m - Request Method 请求类型,如GET; Cli模式下为执行命令,如/bin/bash。
%I - Client IP 来源客户端IP; Cli模式下为local。取值优先级为:HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR
%F - FileName:LineNo 文件名:行号,如UserService.php:118。
%U - MemoryUsage 当前内容使用量,单位byte。调用zend_memory_usage。
%u - PeakMemoryUsage 当前内容使用峰值量,单位byte。调用zend_memory_peak_usage。
%C - TODO Class::Action 类名::方法名,如UserService::getUserInfo。
mynote:
;日志格式模板 默认"%T | %L | %P | %Q | %t | %M"
seaslog.default_template = "%T | %L | %R | %C | %F | %Q | %M"
datetime level uri class filename reqid message
封装之后,需要修改这个(堆栈回溯一层):
seaslog.recall_depth = 1
lv1= lv2= type=

SeasLog 共将日志分成8个级别

SEASLOG_DEBUG
"DEBUG" - debug信息、细粒度信息事件 8
SEASLOG_INFO
"INFO" - 重要事件、强调应用程序的运行过程 7
SEASLOG_NOTICE
"NOTICE" - 一般重要性事件、执行过程中较INFO级别更为重要的信息 6
SEASLOG_WARNING
"WARNING" - 出现了非错误性的异常信息、潜在异常信息、需要关注并且需要修复 5
SEASLOG_ERROR
"ERROR" - 运行时出现的错误、不必要立即进行修复、不影响整个逻辑的运行、需要记录并做检测 4
SEASLOG_CRITICAL
"CRITICAL" - 紧急情况、需要立刻进行修复、程序组件不可用 3
SEASLOG_ALERT
"ALERT" - 必须立即采取行动的紧急事件、需要立即通知相关人员紧急修复 2
SEASLOG_EMERGENCY
"EMERGENCY" - 系统不可用 1

SeasLog 日志收集

https://github.com/SeasX/SeasLog/blob/master/Specification/SeasLog_Rsyslog_ELK_zh.md

mynote_备案

testing

点赞(0) 阅读(100) 举报
目录
标题