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