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