• 技术文章 >php教程 >php手册

    解析php如何将日志写进syslog

    2016-06-13 11:44:20原创980
    在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统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
    第二个参数为具体的日志内容。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思 下一篇:浅析php变量修饰符static的使用
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• php上传图片类及用法示例,• php模拟post请求发送文件• PHP CURL访问HTTPS使用• PHP MYSQL动态网页编程纠错指南• 外媒体评:改良程序的11技巧
    1/1

    PHP中文网