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