• 日志记录工具


    日志是每个项目中必不可少的,通过日志的分析,可以方便用户了解系统或软件、应用的运行情况,从而帮助我们完善系统。
    目前功能比较全面的第三方PHP开源日志框架有Monolog、SeasLog、log4php等,其中以log4php最为著名,设计精良、格式完美、文档完善、功能强大;Monolog功能较全而且易于扩展,被集成在很多PHP开源框架之中;SeasLog功能也很强大并且有着C语言般的卓越性能,而且是国人所创。当然还有很多小巧实用的开源日志框架,如KLogger,简单易用,很适合小项目中使用。
    Monolog
    Monolog是php下比较全又容易扩展的记录日志组件。目前有包括Symfony 、Laravel、 CakePHP等诸多知名php框架都内置了Monolog。
    Monolog可以把你的日志发送到文件,sockets,收件箱,数据库和各种web服务器上。一些特殊的组件可以给你带来特殊的日志策略。
    每个Logger实例都有一个通道和日志处理器栈。每当你添加一条日志记录,它会被发送到日志处理器栈。 你可以创建很多Logger,每个Logger定义一个通道(db,请求,路由),每个Logger有很多日志处理器。这些通道会过滤日志。
    每个日志处理器都有一个Formatter(内置的日志显示格式处理器)。你还可以设定日志级别。
    日志级别
    – DEBUG:详细的debug信息
    – INFO:感兴趣的事件。像用户登录,SQL日志
    – NOTICE:正常但有重大意义的事件。
    – WARNING:发生异常,使用了已经过时的API。
    – ERROR:运行时发生了错误,错误需要记录下来并监视,但错误不需要立即处理。
    – CRITICAL:关键错误,像应用中的组件不可用。
    – ALETR:需要立即采取措施的错误,像整个网站挂掉了,数据库不可用。这个时候触发器会通过SMS通知你。
    SeasLog
    SeasLog是用C语言编写的PHP扩展库,功能强大而且性能极高,但是需要把它集成配置到php.ini,使用之前的准备工作稍有些烦琐。
    SeasLog功能非常丰富,基本能满足大项目日志系统的各项需求
    – 分模块、分级别
    – 配置简单
    – 日志格式清晰易读
    – 应用简单、性能很棒
    – 便捷、规范的log记录
    – 高效的海量log分析
    – 可配置、多途径的log预警
    – 可配置的默认log目录与模块
    – 指定log目录与获取当前配置
    – 初步的分析预警框架
    – 高效的日志缓冲、便捷的缓冲debug
    – 遵循 PSR-3 日志接口规范
    – 自动记录错误信息
    – 自动记录异常信息
    – 连接TCP端口发送
    – 连接UDP端口发送
     
    seaslog的安装 
    //1.下载扩展
    wget http://pecl.php.net/get/SeasLog-1.6.8.tgz
    
    //2.解压文件
    tar -zxvf SeasLog-1.6.8.tgz
    
    
    //3.编译
    phpize  产生一个configure文件
    
    //4. 检测
    ./configure--with-php-config=/usr/bin/php-config
    //--with-php-config 自己的配置文件
    
    //5. 安装
    make && make install
    
    //6. 在php.ini文件中配置SeasLog信息
    extension=seaslog.so
    
    
    //其他参数也可以进行配置,需要的可以查看官网进行相应的配置
    easlog.default_basepath
     = /var/log/
    
    seaslog.default_logger
     = default
    
    seaslog.disting_type
     = 1
    
    seaslog.disting_by_hour
     = 1
    
    seaslog.use_buffer
     = 1
    
    seaslog.buffer_size
     = 100
    
    seaslog.level
     = 0
    
    seaslog.trace_error
     = 1
    
    seaslog.trace_exception
     = 0
    
    seaslog.default_datetime_format
     = "%Y:%m:%d %H:%M:%S"
    
    //7.重启服务器
    service nginx reload
    or
    service php-fpm reload
     
    个人观点:
    Monolog:大项目首选推荐,基本需要的功能都有。
    SeasLog:如果你特别在意日志的性能问题,并且不嫌组件库配置麻烦,就选择SeasLog,大项目中可以尝试,小项目就算了,别折腾。
    Log4php:不推荐使用,官方基本已经不更新了,如果你非常熟悉log4j,倒是可以尝试使用。
    KLogger:如果你只需要记录一下debug、info、notice之类的信息而不需要做其它进一步处理,强烈推荐KLogger。

  • 相关阅读:
    MyEclipse添加XML的xsd文件和dtd文件(自动补全xml节点代码)
    浅析Java中Map与HashMap,Hashtable,HashSet的区别(转载)
    jsp中:jsp声明与jsp脚本<%! int count=0;%> 与<% int count=0;%>
    JSP内置对象详细介绍(上)<转载>
    学习运用json
    win7与win7之间无法访问共享文件的问题解决(转)
    关于工作情绪化的问题
    Hadoop配置学习
    问题汇总
    mysql读写分离
  • 原文地址:https://www.cnblogs.com/xingxia/p/php_logs.html
Copyright © 2020-2023  润新知