熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

解析php如何將日志寫進syslog

2013-11-15 12:25:39  來源: PHP編程 
本篇文章是對php中將日志寫進syslog的方法進行了詳細的分析介紹需要的朋友參考下  

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

復制代碼 代碼如下:
vim syslogconf

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

復制代碼 代碼如下:
openlog("Event" LOG_PID | LOG_PERROR LOG_LOCAL);
syslog($level "LOG MESSAGE: " $errinfo);
closelog();

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


From:http://tw.wingwit.com/Article/program/PHP/201311/20919.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.