這些函數的行為受 php.ini 中的設置影響。
名字 | 默認 | 可修改范圍 | 更新日志 |
---|---|---|---|
seaslog.appender | 1 | PHP_INI_SYSTEM | |
seaslog.appender_retry | 0 | PHP_INI_ALL | |
seaslog.level | 8 | PHP_INI_ALL | |
seaslog.remote_host | 127.0.0.1 | PHP_INI_ALL | |
seaslog.remote_port | 514 | PHP_INI_ALL | |
seaslog.remote_timeout | 1 | PHP_INI_SYSTEM | |
seaslog.default_basepath | /var/log/www | PHP_INI_SYSTEM | |
seaslog.default_logger | default | PHP_INI_SYSTEM | |
seaslog.default_template | %T | %L | %P | %Q | %t | %M | PHP_INI_SYSTEM | |
seaslog.default_datetime_format | Y-m-d H:i:s | PHP_INI_SYSTEM | |
seaslog.trace_error | 1 | PHP_INI_ALL | |
seaslog.trace_exception | 0 | PHP_INI_SYSTEM | |
seaslog.trace_notice | 0 | PHP_INI_ALL | |
seaslog.trace_warning | 0 | PHP_INI_ALL | |
seaslog.use_buffer | 0 | PHP_INI_SYSTEM | |
seaslog.buffer_size | 0 | PHP_INI_ALL | |
seaslog.buffer_disabled_in_cli | 0 | PHP_INI_SYSTEM | |
seaslog.disting_type | 0 | PHP_INI_SYSTEM | |
seaslog.disting_folder | 1 | PHP_INI_SYSTEM | |
seaslog.disting_by_hour | 0 | PHP_INI_SYSTEM | |
seaslog.recall_depth | 0 | PHP_INI_ALL | |
seaslog.trim_wrap | 0 | PHP_INI_ALL | |
seaslog.ignore_warning | 1 | PHP_INI_ALL | |
seaslog.throw_exception | 1 | PHP_INI_ALL |
這是配置指令的簡(jiǎn)短說(shuō)明。
seaslog.appender
integer
日志存儲介質(zhì)的切換選型。1File 2TCP 3UDP (默認為1)
當 seaslog.appender 被切換至 `2 (TCP)` 或者 `3 (UDP)` 時(shí), SeasLog 會(huì )將日志發(fā)送至 tcp://remote_host:remote_port 或者 udp://remote_host:remote_port 服務(wù)器。
當 SeasLog 將日志發(fā)往 TCP/UDP 時(shí),格式遵守 RFC5424 規范。 此時(shí) `{logInfo}` 受配置項中 seaslog.default_template 的影響。
The log style finally formatted such as: <15>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | DEBUG | 21423 | 599157af4e937 | 1466787583.322 | this is a neeke debug <14>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | INFO | 21423 | 599157af4e937 | 1466787583.323 | this is a info log <13>1 2017-08-27T01:24:59+08:00 vagrant-ubuntu-trusty test/logger[27171]: 2016-06-25 00:59:43 | NOTICE | 21423 | 599157af4e937 | 1466787583.324 | this is a notice log
seaslog.appender_retry
integer
記錄日志時(shí)的重試次數。 默認為 0 (不重試)
seaslog.buffer_disabled_in_cli
integer
在 CLI 模式下是否關(guān)閉 Buffer 的選項。 1-Y 0-N(默認值)
在配置中留有 buffer_disabled_in_cli 的開(kāi)關(guān)項。 默認情況下,這個(gè)選項是關(guān)閉的。 如果將 buffer_disabled_in_cli 設為開(kāi)啟,并且運行在 CLI 時(shí), 配置中的 seaslog.use_buffer 設置將是被忽略的,此時(shí) Seaslog 將立即把日志信息寫(xiě)往存儲介質(zhì)。
seaslog.buffer_size
integer
可以通過(guò)該配置項將內存中 Buffer 的條數修改為 100 條。 配置項中 buffer_size 默認值為 0, 這意味著(zhù)將不使用 Buffer。 如果 buffer_size > 0,SeasLog 將預先將日志寫(xiě)入內存 Buffer,并在 Buffer 的條數大于或等于該值時(shí),寫(xiě)往存儲介質(zhì),然后刷新內存中的 Buffer。
seaslog.default_basepath
string
日志存儲的默認根路徑。默認值為 "/var/log/www"。
seaslog.default_datetime_format
string
時(shí)間的格式。默認值為 "Y-m-d H:i:s"。
seaslog.default_logger
string
日志記錄的默認 Logger。默認值為 "default"。
seaslog.disting_by_hour
integer
是否按每小時(shí)一個(gè)記錄進(jìn)行區分。1-Y 0-N(默認值)
注意:
當 seaslog.disting_by_hour = 1 時(shí),會(huì )將日志區分小時(shí)記錄。 這意味著(zhù),SeasLog 將每隔一個(gè)小時(shí)創(chuàng )建一個(gè)文件。
seaslog.disting_folder
integer
是否按目錄進(jìn)行區分。1-Y(默認值) 0-N
注意:
當 seaslog.disting_folder = 1 時(shí),按目錄區分地使用 Logger。 這意味著(zhù),SeasLog 將為每一個(gè) Logger 創(chuàng )建一個(gè)單獨的目錄進(jìn)行區分,比如 default/20180211.log, 而當該選項關(guān)閉時(shí),SeasLog 將使用下劃線(xiàn)連接 Logger 與時(shí)間,比如 default_20180211.log。
seaslog.disting_type
integer
是否按日志級別進(jìn)行區分。1-Y 0-N(默認值)
注意:
當 seaslog.disting_type = 1 時(shí),按日志級別使用 Logger。 這意味著(zhù),SeasLog 將在創(chuàng )建日志文件時(shí),使用 info/warn/error 或其他級別進(jìn)行區分。
seaslog.ignore_warning
integer
是否忽略 SeasLog 警告。1-On(默認值) 0-Off
注意:
當 seaslog.ignore_warning = 1 時(shí),忽略 SeasLog 自身的警告, 此時(shí)日志目錄權限不足、或從遠端 Server 端口不能正常響應等導致的警告,將被忽略; 而當關(guān)閉該選項時(shí),警告將會(huì )出現。
seaslog.level
integer
允許日志被記錄的級別。默認為 8 (全部日志)。 0-EMERGENCY 1-ALERT 2-CRITICAL 3-ERROR 4-WARNING 5-NOTICE 6-INFO 7-DEBUG 8-ALL
注意:
提示: 該配置項從 1.7.0 版本開(kāi)始有所改變。 在 1.7.0 之前的版本中,越小的值將代表越多的級別日志被記錄下來(lái): 0-all 1-debug 2-info 3-notice 4-warning 5-error 6-critical 7-alert 8-emergency 在 1.7.0 之前的版本中,默認值是 0 (全部日志)。
seaslog.recall_depth
integer
日志函數所在的層級。這將影響預置變量中的行號取值 `%F`。 默認值為 0。
seaslog.remote_host
string
如果要使用 TCP 或者 UDP 為存儲介質(zhì),需要配置遠端的 IP。默認值為 "127.0.0.1"
seaslog.remote_port
integer
如果要使用 TCP 或者 UDP 為存儲介質(zhì),需要配置遠端服務(wù)的端口號。默認值為 514
seaslog.remote_timeout
integer
如果要使用 TCP 或者 UDP 為存儲介質(zhì),需要配置超時(shí)時(shí)間。默認值為 1 秒。
seaslog.throw_exception
integer
是否接受 SeasLog 拋出異常。1-On(默認值) 0-Off
注意:
當seaslog.throw_exception = 1時(shí),接受 SeasLog 拋出自身的異常, 此時(shí)由于日志目錄權限問(wèn)題、或者從遠端 Server 端口不能正常響應而導致的中斷, 將拋出一個(gè)異常;而當關(guān)閉該選項時(shí),將不拋出異常。
seaslog.trace_error
integer
自動(dòng)將 PHP 的 Final Error 記錄在默認 Logger中。1-Y(默認值) 0-N
seaslog.trace_exception
integer
自動(dòng)將 PHP 的異常記錄在默認 Logger中。1-Y 0-N(默認值)
seaslog.trace_notice
integer
自動(dòng)將 PHP 的 Notice 記錄在默認 Logger中。1-Y 0-N(默認值)
seaslog.trace_warning
integer
自動(dòng)將 PHP 的 Warning 記錄在默認 Logger中。1-Y 0-N(默認值)
seaslog.trim_wrap
integer
自動(dòng)地 Trim 掉日志信息中的 \n 和 \r。1-On 0-Off(默認值)
seaslog.use_buffer
integer
開(kāi)啟使用內存中的日志 Buffer。1-Y 0-N(默認值)
注意:
當seaslog.use_buffer = 1時(shí),開(kāi)啟使用內存 Buffer。 默認情況下,內存 Buffer 是關(guān)閉的。 如果 Buffer 是開(kāi)啟狀態(tài),SeasLog 會(huì )將日志預先記錄在內存中, 并且在請求結束時(shí)、或 PHP 進(jìn)程結束時(shí)(PHP RSHUTGOWN 或 PHP MSHUTDOWN)時(shí)寫(xiě)往存儲介質(zhì)。
seaslog.default_template
string
默認日志模板。 默認值是 "%T | %L | %P | %Q | %t | %M".
注意:
SeasLog 提供了一系列的默認變量,可以在日志模板中使用,并在最終日志生成時(shí),這些變量的占位符會(huì )被替換成對應的值。
默認的日志模板是:`seaslog.default_template = "%T | %L | %P | %Q | %t | %M"`, 這意味著(zhù),默認的日志格式會(huì )是:`{dateTime} | {level} | {pid} | {uniqid} | {timeStamp} | {logInfo}`
如果修改了日志模板,比如:`seaslog.default_template = "[%T]:%L %P %Q %t %M" `, 這意味著(zhù),日志的格式將會(huì )成改變?yōu)椋篳[{dateTime}]:{level} {pid} {uniqid} {timeStamp} {logInfo}`
Seaslog 內置變量表 變量名 描述 %L 日志級別。 %M 日志信息。 %T 時(shí)間。 比如:`2017-08-16 19:15:02`,受配置項 `seaslog.default_datetime_format` 的影響。 %t 時(shí)間戳。比如:`1502882102.862`,精確到毫秒。 %Q 請求ID。用于區分每一個(gè)請求, 如果沒(méi)有調用 `SeasLog::setRequestId($string)` 函數, 將在請求初始化的時(shí)候,使用 PHP 內置函數 `static char *get_uniqid ()` 來(lái)生成 Unique ID。 %H 主機名。 %P 進(jìn)程ID。 %D 域名:端口號。比如:`www.cloudwise.com:80`;在 CLI 下運行時(shí),該值為 `cli`。 %R 請求 URI。比如:`/app/user/signin`。 在 CLI 下運行時(shí),值為 Index Script 名稱(chēng),比如:`CliIndex.php`。 %m 請求 Method。比如:`Get`。 在 CLI 下運行時(shí),值為 Command Script,比如:`/bin/bash`。 %I 客戶(hù)端IP;在 CLI 下運行時(shí),值為`local`。 取值優(yōu)先級為:HTTP_X_REAL_IP > HTTP_X_FORWARDED_FOR > REMOTE_ADDR %F 文件名:行號。比如:`UserService.php:118`。 %U 內存使用量。單位為 byte。 調用 PHP 內置方法`zend_memory_usage`得到該值。 %u 最大內存使用峰值。單位為 byte。 調用 PHP 內置方法`zend_memory_peak_usage`得到該值。 %C `TODO` Class::Action. Such as `UserService::getUserInfo`