解析php如何将日志写进syslog

本篇文章是对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
第二个参数为具体的日志内容。

时间: 2024-11-09 00:19:24

解析php如何将日志写进syslog的相关文章

解析php如何将日志写进syslog_php技巧

在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统syslog,下边我们就介绍一下,在linux下php对syslog的操作:在linux中配置syslog在linux中,facility(设备)有以下几种:AUTH 普通安全/授权消息AUTHPRIV 私有安全/授权消息CRON 定时器进程DAEMON 守护进程KERN 内核消息LOCAL0 ... LOCAL7  本地应用,在windows上不支持LPR  行式打印机MAIL  邮件服务NEWS  新闻服务SYSLOG  由sysl

如何使用ITEXTSHARP将HTML代码字符串写进PDF

原文 如何使用ITEXTSHARP将HTML代码字符串写进PDF itextsharp包括一个简单的类,可以用来根据html代码或字符串创建pdf文件.使用此类,你可以使用短短几行代码,就将 HTML 文档生成一个 PDF 文件.可供下载的演示包含名为 Receipt.htm,其中位于 ~/HTMLTemplate 文件夹中的 HTML 模板文件.此 HTML 文件包含以下标记 (注意-为简洁起见被移除了一些标记).  <h1 style="font-weight: bold"&

大理首次将“开展网络问政”写进“两会”政府工作报告

在22日召开的大理白族自治州第十三届人民代表大会第一次会议上,州长何华代表州http://www.aliyun.com/zixun/aggregation/38595.html">人民政府向大会作<政府工作报告>时,会场中4个大屏幕同时显示的PPT投影,对报告进行了图文并茂的生动解析. 何华说,未来5年中,大理州将坚定不移地把产业发展作为重中之重,积极做好大理机场迁建.旅游直升机场.祥临铁路.大攀铁路.大普及大攀高速公路建设和楚大高速公路改扩建规划及前期工作,加快推进广大铁路扩

为什么把 tkinter控件写进类里,就不能触发事件了?

问题描述 为什么把 tkinter控件写进类里,就不能触发事件了? from Tkinter import * class Gui: def __init__(self): self.root = Tk() self.var = IntVar() self.label = Label(self.root) self.label.pack() R1 = Radiobutton(self.root text=""Option 1"" variable=self.var

我想做一个这样新用户注册界面,可是我不会把权限和姓名也写进数据库,求好心人赐一个完整代码

问题描述 我想做一个这样新用户注册界面,可是我不会把权限和姓名也写进数据库,求好心人赐一个完整代码 解决方案 看看这些http://download.csdn.net/detail/aimonhai/1480222http://download.csdn.net/download/bkzhw3/5975209http://download.csdn.net/download/fanhongwei601/4353841http://download.csdn.net/detail/qq223857

mysql-qt 多线程接收下位机数据写进MySQL中。

问题描述 qt 多线程接收下位机数据写进MySQL中. qt 多线程接收下位机数据写进MySQL中.上位机是一个多线程的服务端,想接收多个客户端(下位机)发来的数据(每个下位机大致有50MB的数据).网络环境是局域网.问题1,大数据在tcpsocket上怎么发送,接收.问题2,如何多线程的写进MySQL中.问题3,传输和读写的速度需要越快越好,有大咖说这样的话可以使用索引+写硬盘.没见过呀. 希望大咖们百忙中指教哈. 解决方案 你没有说清楚多少时间内50M,有几个下位机.就你的需求,建议不要用数

xml-微信支付开发如何在用户支付成功后在notify.php上把支付成功的订单号写进数据库

问题描述 微信支付开发如何在用户支付成功后在notify.php上把支付成功的订单号写进数据库 就是无法取得微信返回的xml中的out_trade_no,商户订单号 解决方案 http://q.cnblogs.com/q/67420/

怎么定义 定位操作里面的 经度,纬度为2个全局变量,以便我赋值,写进数据库

问题描述 怎么定义 定位操作里面的 经度,纬度为2个全局变量,以便我赋值,写进数据库 如果我想把定位里面的经度,纬度定义成2个全局变量,以便我后面赋值到一个值,并写入数据库,要怎么用代码实现呢?因为我是新手,所以不知道怎么用代码实现,请各位大神教下我这个笨鸟! 解决方案 定义一个类,用静态成员 class GlobalData { public static float xxx; } 程序任何地方 GlobalData.xxx 解决方案二: C或C++吗? A文件定义全局变量,如float gl

图片-Java如何将集合写进联系人系统

问题描述 Java如何将集合写进联系人系统 # Java如何将集合写进联系人系统 解决方案 for-each循环. 解决方案二: for (E item : con) { 插入数据库 }