程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 解析php如何將日志寫進syslog

解析php如何將日志寫進syslog

編輯:關於PHP編程
    本篇文章是對php中將日志寫進syslog的方法進行了詳細的分析介紹,需要的朋友參考下  

    在做項目的時候們為了方便運維,我們經常需要將系統日志寫入系統syslog,下邊我們就介紹一下,在linux下php對syslog的操作:
    在linux中配置syslog
    在linux中,facility(設備)有以下幾種:
    AUTH 普通安全/授權消息
    AUTHPRIV 私有安全/授權消息
    CRON 定時器進程
    DAEMON 守護進程
    KERN 內核消息
    LOCAL0 ... LOCAL7 本地應用,在windows上不支持
    LPR 行式打印機
    MAIL 郵件服務
    NEWS 新聞服務
    SYSLOG 由syslogd內部產生的消息
    USER 通用的用戶級信息
    UUCP UUCP子系統
    登錄linux系統,進入/etc目錄,輸入:

    復制代碼 代碼如下:
    vim syslog.conf


    打開syslog的配置文件
    在這裡,你可以看到syslog的所有配置信息,這裡定義了在上一節中提到的每種日志類型存儲日志所使用的條件,如:
    daemon.* -/var/log/daemon.log
    定義了daemon所產生的日志的保存位置,其中daemon為日志類型,“*”代表將所有級別的日志都放到該文件。格式為:
    facility。level -日志文件保存的路徑,如-/var/log/daemon.log
    level包括:
    emerg -該系統不可用
    alert -需要立即被修改的條件
    crit -阻止某些工具或子系統功能實現的錯誤條件
    err -阻止工具或某些子系統部分功能實現的錯誤條件
    warning -預警信息
    notice -具有重要性的普通條件
    info -提供信息的消息
    debug -不包含函數條件或問題的其他信息
    none -沒有重要級,通常用於排錯
    * 所有級別,除了none
    下面我們在配置文件中定義一個自己設備的日志規則:local4.info -/var/log/
    接下來執行命令/etc/init.d/sysklogd restart或/etc/init.d/sysklogd reload使新增的配置生效,下面我們可以測試新增的日志規則了:
    1.輸入命令 logger -p local4.info " my test log"
    2.執行命令 tail /var/log/event_log.log
    你可以看到自己寫入的日志信息:
    注意:syslog.conf中local4.info 代表所有info級別以及以上的日志會記錄到這裡
    ok,到現在我們已經在ubuntu中設置好了我們需要的日志,下面我們用php中的syslog將日志寫到ubuntu中的syslog中。
    下面直接上php代碼:

    復制代碼 代碼如下:
    openlog("Event1.0", LOG_PID | LOG_PERROR, LOG_LOCAL4);
    syslog($level, "LOG MESSAGE: " . $errinfo);
    closelog();


    以上各方法的具體用法請查看PHP的API,具體用法不在這裡贅述。
    其中openlog的第一個參數,是日志標識,該標識會自動加在日志信息的開始,用來表示是什麼系統寫入的日志。
    由於我們想要將日志寫入local4.info,所以第三個參數需使用LOG_LOCAL4,該參數表示寫入日志的設備信息。
    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
    第二個參數為具體的日志內容。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved