解析php如何將日志寫(xiě)進(jìn)syslog
更新時(shí)間:2013年06月28日 17:24:49 作者:
本篇文章是對(duì)php中將日志寫(xiě)進(jìn)syslog的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
在做項(xiàng)目的時(shí)候們?yōu)榱朔奖氵\(yùn)維,我們經(jīng)常需要將系統(tǒng)日志寫(xiě)入系統(tǒng)syslog,下邊我們就介紹一下,在linux下php對(duì)syslog的操作:
在linux中配置syslog
在linux中,facility(設(shè)備)有以下幾種:
AUTH 普通安全/授權(quán)消息
AUTHPRIV 私有安全/授權(quán)消息
CRON 定時(shí)器進(jìn)程
DAEMON 守護(hù)進(jìn)程
KERN 內(nèi)核消息
LOCAL0 ... LOCAL7 本地應(yīng)用,在windows上不支持
LPR 行式打印機(jī)
MAIL 郵件服務(wù)
NEWS 新聞服務(wù)
SYSLOG 由syslogd內(nèi)部產(chǎn)生的消息
USER 通用的用戶級(jí)信息
UUCP UUCP子系統(tǒng)
登錄linux系統(tǒng),進(jìn)入/etc目錄,輸入:
vim syslog.conf
打開(kāi)syslog的配置文件
在這里,你可以看到syslog的所有配置信息,這里定義了在上一節(jié)中提到的每種日志類型存儲(chǔ)日志所使用的條件,如:
daemon.* -/var/log/daemon.log
定義了daemon所產(chǎn)生的日志的保存位置,其中daemon為日志類型,“*”代表將所有級(jí)別的日志都放到該文件。格式為:
facility。level -日志文件保存的路徑,如-/var/log/daemon.log
level包括:
emerg -該系統(tǒng)不可用
alert -需要立即被修改的條件
crit -阻止某些工具或子系統(tǒng)功能實(shí)現(xiàn)的錯(cuò)誤條件
err -阻止工具或某些子系統(tǒng)部分功能實(shí)現(xiàn)的錯(cuò)誤條件
warning -預(yù)警信息
notice -具有重要性的普通條件
info -提供信息的消息
debug -不包含函數(shù)條件或問(wèn)題的其他信息
none -沒(méi)有重要級(jí),通常用于排錯(cuò)
* 所有級(jí)別,除了none
下面我們?cè)谂渲梦募卸x一個(gè)自己設(shè)備的日志規(guī)則:local4.info -/var/log/
接下來(lái)執(zhí)行命令/etc/init.d/sysklogd restart或/etc/init.d/sysklogd reload使新增的配置生效,下面我們可以測(cè)試新增的日志規(guī)則了:
1.輸入命令 logger -p local4.info " my test log"
2.執(zhí)行命令 tail /var/log/event_log.log
你可以看到自己寫(xiě)入的日志信息:
注意:syslog.conf中l(wèi)ocal4.info 代表所有info級(jí)別以及以上的日志會(huì)記錄到這里
ok,到現(xiàn)在我們已經(jīng)在ubuntu中設(shè)置好了我們需要的日志,下面我們用php中的syslog將日志寫(xiě)到ubuntu中的syslog中。
下面直接上php代碼:
openlog("Event1.0", LOG_PID | LOG_PERROR, LOG_LOCAL4);
syslog($level, "LOG MESSAGE: " . $errinfo);
closelog();
以上各方法的具體用法請(qǐng)查看PHP的API,具體用法不在這里贅述。
其中openlog的第一個(gè)參數(shù),是日志標(biāo)識(shí),該標(biāo)識(shí)會(huì)自動(dòng)加在日志信息的開(kāi)始,用來(lái)表示是什么系統(tǒng)寫(xiě)入的日志。
由于我們想要將日志寫(xiě)入local4.info,所以第三個(gè)參數(shù)需使用LOG_LOCAL4,該參數(shù)表示寫(xiě)入日志的設(shè)備信息。
syslog中$level為日志級(jí)別,包括:
LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions
LOG_ERR error conditions
LOG_WARNING warning conditions
LOG_NOTICE normal, but significant, condition
LOG_INFO informational message
LOG_DEBUG debug-level message
第二個(gè)參數(shù)為具體的日志內(nèi)容。
在linux中配置syslog
在linux中,facility(設(shè)備)有以下幾種:
AUTH 普通安全/授權(quán)消息
AUTHPRIV 私有安全/授權(quán)消息
CRON 定時(shí)器進(jìn)程
DAEMON 守護(hù)進(jìn)程
KERN 內(nèi)核消息
LOCAL0 ... LOCAL7 本地應(yīng)用,在windows上不支持
LPR 行式打印機(jī)
MAIL 郵件服務(wù)
NEWS 新聞服務(wù)
SYSLOG 由syslogd內(nèi)部產(chǎn)生的消息
USER 通用的用戶級(jí)信息
UUCP UUCP子系統(tǒng)
登錄linux系統(tǒng),進(jìn)入/etc目錄,輸入:
復(fù)制代碼 代碼如下:
vim syslog.conf
打開(kāi)syslog的配置文件
在這里,你可以看到syslog的所有配置信息,這里定義了在上一節(jié)中提到的每種日志類型存儲(chǔ)日志所使用的條件,如:
daemon.* -/var/log/daemon.log
定義了daemon所產(chǎn)生的日志的保存位置,其中daemon為日志類型,“*”代表將所有級(jí)別的日志都放到該文件。格式為:
facility。level -日志文件保存的路徑,如-/var/log/daemon.log
level包括:
emerg -該系統(tǒng)不可用
alert -需要立即被修改的條件
crit -阻止某些工具或子系統(tǒng)功能實(shí)現(xiàn)的錯(cuò)誤條件
err -阻止工具或某些子系統(tǒng)部分功能實(shí)現(xiàn)的錯(cuò)誤條件
warning -預(yù)警信息
notice -具有重要性的普通條件
info -提供信息的消息
debug -不包含函數(shù)條件或問(wèn)題的其他信息
none -沒(méi)有重要級(jí),通常用于排錯(cuò)
* 所有級(jí)別,除了none
下面我們?cè)谂渲梦募卸x一個(gè)自己設(shè)備的日志規(guī)則:local4.info -/var/log/
接下來(lái)執(zhí)行命令/etc/init.d/sysklogd restart或/etc/init.d/sysklogd reload使新增的配置生效,下面我們可以測(cè)試新增的日志規(guī)則了:
1.輸入命令 logger -p local4.info " my test log"
2.執(zhí)行命令 tail /var/log/event_log.log
你可以看到自己寫(xiě)入的日志信息:
注意:syslog.conf中l(wèi)ocal4.info 代表所有info級(jí)別以及以上的日志會(huì)記錄到這里
ok,到現(xiàn)在我們已經(jīng)在ubuntu中設(shè)置好了我們需要的日志,下面我們用php中的syslog將日志寫(xiě)到ubuntu中的syslog中。
下面直接上php代碼:
復(fù)制代碼 代碼如下:
openlog("Event1.0", LOG_PID | LOG_PERROR, LOG_LOCAL4);
syslog($level, "LOG MESSAGE: " . $errinfo);
closelog();
以上各方法的具體用法請(qǐng)查看PHP的API,具體用法不在這里贅述。
其中openlog的第一個(gè)參數(shù),是日志標(biāo)識(shí),該標(biāo)識(shí)會(huì)自動(dòng)加在日志信息的開(kāi)始,用來(lái)表示是什么系統(tǒng)寫(xiě)入的日志。
由于我們想要將日志寫(xiě)入local4.info,所以第三個(gè)參數(shù)需使用LOG_LOCAL4,該參數(shù)表示寫(xiě)入日志的設(shè)備信息。
syslog中$level為日志級(jí)別,包括:
LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions
LOG_ERR error conditions
LOG_WARNING warning conditions
LOG_NOTICE normal, but significant, condition
LOG_INFO informational message
LOG_DEBUG debug-level message
第二個(gè)參數(shù)為具體的日志內(nèi)容。
您可能感興趣的文章:
- php性能分析之php-fpm慢執(zhí)行日志slow log用法淺析
- php實(shí)現(xiàn)的debug log日志操作類實(shí)例
- 記錄PHP錯(cuò)誤日志 display_errors與log_errors的區(qū)別
- php記錄日志的實(shí)現(xiàn)代碼
- php實(shí)現(xiàn)的簡(jiǎn)單日志寫(xiě)入函數(shù)
- PHP寫(xiě)日志的實(shí)現(xiàn)方法
- PHP 寫(xiě)文本日志實(shí)現(xiàn)代碼
- php錯(cuò)誤日志簡(jiǎn)單配置方法
- php利用單例模式實(shí)現(xiàn)日志處理類庫(kù)
- PHP調(diào)試函數(shù)和日志記錄函數(shù)分享
- php基于自定義函數(shù)記錄log日志方法
相關(guān)文章
PHP實(shí)現(xiàn)針對(duì)日期,月數(shù),天數(shù),周數(shù),小時(shí),分,秒等的加減運(yùn)算示例【基于strtotime】
這篇文章主要介紹了PHP實(shí)現(xiàn)針對(duì)日期,月數(shù),天數(shù),周數(shù),小時(shí),分,秒等的加減運(yùn)算,結(jié)合實(shí)例形式分析了基于strtotime的簡(jiǎn)單日期時(shí)間運(yùn)算技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04PHP實(shí)現(xiàn)的各類hash算法長(zhǎng)度及性能測(cè)試實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的各類hash算法長(zhǎng)度及性能測(cè)試,結(jié)合具體實(shí)例形式分析了php hash計(jì)算的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08解決wincache不支持64位PHP5.5/5.6的問(wèn)題(提供64位wincache下載)
這篇文章主要解決wincache不支持64位PHP5.5/5.6的問(wèn)題,并提供64位wincache的下載,需要的朋友可以參考下。2016-06-06php實(shí)現(xiàn)的樹(shù)形結(jié)構(gòu)數(shù)據(jù)存取類實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的樹(shù)形結(jié)構(gòu)數(shù)據(jù)存取類,實(shí)例演示了以樹(shù)形數(shù)據(jù)結(jié)構(gòu)存取數(shù)據(jù)的實(shí)現(xiàn)方法,對(duì)于學(xué)習(xí)基于PHP的數(shù)據(jù)結(jié)構(gòu)有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11深入研究PHP中的preg_replace和代碼執(zhí)行
這篇文章主要給大家介紹了關(guān)于PHP中preg_replace和代碼執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08