Log4PHP2.3.0使用解释

1. 什么是Log4PHP

Log4php它为apche组织维护项目,是Log4xx系列日志组件之一,log4j在JAVA中可算是大名鼎鼎的日志开发包。Log4PHP也作为一个单独的子项目存在,可以很方便的加载使用。

apache官方网站:http://logging.apache.org/log4php/

另外一个LOG4PHP的主站:http://www.vxr.it/log4php/

2. Log4PHP目录结构

从apache官网下载之后,解压得到的文件夹目录如下:

对于需要的LOG4PHP的主要核心代码在src/main/php下面,

3. Log4PHP的简单使用

3.1 建立Log4PHP的XML配置文件

 <?xml version="1.0" encoding="UTF-8"?>
 <configuration xmlns="http://logging.apache.org/log4php/">
     <!-- 标准控制台输出的appender -->
     <appender name="STDOUT" class="LoggerAppenderConsole">
         <param name="threshold" value="debug"/>
         <layout class="LoggerLayoutPattern" >
             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
         </layout>
     </appender>

     <!-- 记录所有ERROR日志的appender -->
     <appender name="ERROR-ALL" class="LoggerAppenderDailyFile">
         <layout class="LoggerLayoutPattern" >
             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
         </layout>
         <param name="file" value="log/php-error.log.%s" />
         <param name="threshold" value="error"/>
         <param name="append" value="true" />
         <param name="datePattern" value="Y-m-d" />
     </appender>

     <!-- 记录所有DEBUG日志的appender -->
     <appender name="DEBUG-ALL" class="LoggerAppenderDailyFile">
         <layout class="LoggerLayoutPattern" >
             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
         </layout>
         <param name="file" value="log/php-debug.log.%s" />
         <param name="threshold" value="debug"/>
         <param name="append" value="true" />
         <param name="datePattern" value="Y-m-d" />
     </appender>

     <!-- 记录所有INFO日志的appender -->
     <appender name="INFO-ALL" class="LoggerAppenderDailyFile">
         <layout class="LoggerLayoutPattern" >
             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
         </layout>
         <param name="file" value="log/php-info.log.%s" />
         <param name="threshold" value="info"/>
         <param name="append" value="true" />
         <param name="datePattern" value="Y-m-d" />
     </appender>

     <root>
         <level value="warn"/>
         <appender-ref ref="STDOUT"/>
         <appender-ref ref="DEBUG-ALL"/>
         <appender-ref ref="INFO-ALL"/>
         <appender-ref ref="ERROR-ALL"/>
     </root>
 </configuration>

3.2 简单PHP测试

 <?php
   require_once('log4php/Logger.php');
   Logger::configure('log4php.xml');
   $pay = Logger::getRootLogger();
   $pay->info('测试LOG4PHP');
   //$pay->warn("测试LOG4PHP");
   //$pay->debug("测试LOG4PHP");
   //$pay->error("测试LOG4PHP");
   //$pay->fatal("测试LOG4PHP");
 ?>

运行PHP文件即可,即:

info 、debug 不会产生文件

warn 生成两个文件:php-debug.log***  php-info.log***

errror fatal会产生三个文件:php-debug.log***  php-error.log***  php-info.log***

4. Log4PHP的配置文件解释

4.1 优先级

由低到高: debug、 info、warn、 error、 fatal, 日志的输出和你的等级设置相关,比如上面的配置文件,root 下的  level = debug 那么所有的等级都会出现日志,但是日志文件的数量是不等的

4.2 日志输出的目的地

(有很多种,数据库、文件等等)

LoggerAppenderConsole //以php://stdout为输出地
LoggerAppenderDailyFile //继承自LoggerAppenderFile, 以文件为输出地,每日输出一个文件
LoggerAppenderDb   //以数据库为输出地
LoggerAppenderEcho //在执行文件尾输出
LoggerAppenderFile //以文件为输出地
LoggerAppenderMail //以邮件为输出地
LoggerAppenderMailEvent //继承自LoggerAppenderMail, 以邮件为输出地, 为事件触发
LoggerAppenderNull //不输出任何信息
LoggerAppenderPhp //输出至PHP错误信息,将各类日志等级信息转化为php标准信息
LoggerAppenderRollingFile //继承自LoggerAppenderFile,以xxx.log.1, xxx.log.2的形式输出,
LoggerAppenderSocket //以socket方式输出
LoggerAppenderSyslog //以系统日志为目的地输出,使用php中的syslog()函数进行记录

4.3 输出的格式

日志输出的格式,LOG4PHP有5种输出方式

LoggerLayoutHtml//以html格式输出调试信息
LoggerLayoutSimple//简单的以 "等级信息 - 日志信息"的格式显示
LoggerLayoutTTCC//以"月/日/年 时间[进程] 等级信息 日志名称 - 调试信息"的格式来显示
LoggerPatternLayout//以模式表达式作为输出格式来显示(这个功能极为强悍,你可以随心所欲的来设置输出格式,在实例部分详细讲解)
LoggerXmlLayout//以xml的模式来输出

这样就可以通过建立多个配置文件,采用灵活管理日志目录,为每一个产品模块采用不同的配置。

Log4PHP 配置和使用的更多相关文章

  1. log4php的配置

    网上关于log4php配置的文章很多,下面是我的配置,跟网上部分略有不同 (1)添加日志     1.下载log4php,到官网就可以下载到,下载后解压     我的版本是log4php_2.3.0 ...

  2. log4php的使用方法与详细配置

    log4php的使用 首先引入logger.php文件.log4php可以通过引入logger.php来完成自动加载的过程.文件位置如下: 日志记录器自身没有定义日志的输出目的地和格式,所以我们通常需 ...

  3. log4php使用及配置

    log4php使用及配置 1.在项目中加入log4php包 2.log4php配置 在项目配置包中添加logger_config.xml配置文件: logger_config.xml配置文件添加代码如 ...

  4. PHP日志 LOG4PHP 的配置与使用

    维护了 一个老项目, 没有日志功能, 就给加了这个log4php,  主要是集成进去很简单,使用起来也够用了. 1.下载log4php 2.创建配置文件 log4php_config.xml < ...

  5. Log4PHP日志库使用

    库下载地址: http://logging.apache.org/log4php/download.html 当前测试使用的版本为2.3.0 1.解压缩下载的压缩文件apache-log4php-2. ...

  6. 配置android sdk 环境

    1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/

  7. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  8. react-router 组件式配置与对象式配置小区别

    1. react-router 对象式配置 和 组件式配置    组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...

  9. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

随机推荐

  1. Could not find a valid gem 'compass' (>= 0) in any repository compass安装失败解决方案

    安装完成ruby gem 之后,通过 gem install compass 安装compass~~ 出现如下报错 Could not find a valid gem 'compass' (> ...

  2. TreeSet小练习

    package 练习.test1; import java.util.Iterator; import java.util.TreeSet; /* 需求:将字符串中的数值进行排序. 例如String ...

  3. 计算机的启动和Linux的启动

    计算机的启动和Linux的启动 一 计算机的启动   计算机的启动过程分为四个阶段,分别是:BIOS.MBR.启动管理程序.加载操作系统内核.操作系统启动.   1.1 BIOS 计算机加电后,第一件 ...

  4. druid抛出的异常------javax.management.InstanceAlreadyExistsException引发的一系列探索

    最近项目中有个定时任务的需求,定时检查mysql数据与etcd数据的一致性,具体实现细节就不说了,今天要说的就是实现过程中遇到了druid抛出的异常,以及解决的过程 异常 异常详细信息 五月 05, ...

  5. JavaScript异步编程

    前言 如果你有志于成为一个优秀的前端工程师,或是想要深入学习JavaScript,异步编程是必不可少的一个知识点,这也是区分初级,中级或高级前端的依据之一.如果你对异步编程没有太清晰的概念,那么我建议 ...

  6. 设计模式的征途—6.建造者(Builder)模式

    建造者模式又称为生成器模式,它是一种较为复杂.使用频率也相对较低的创建型模式.建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品.因为,没有人买车会只买一个方向盘或者轮胎,大 ...

  7. [原创]Jquery实现表格内容点击隐藏显示内容

    1.首先看效果,点击红色字体,可是查看全部文字内容 2.JS实现 思路:将Ajax获得的数据,一份截取,一份不变,放到td里面,分别用span装着. 然后通过display属性,进行切换

  8. JavaEE开发之记事本完整案例(SpringBoot + iOS端)

    上篇博客我们聊了<JavaEE开发之SpringBoot整合MyBatis以及Thymeleaf模板引擎>,并且在之前我们也聊了<Swift3.0服务端开发(五) 记事本的开发(iO ...

  9. CentOS6.5_x86安装Mysql5.5.49

    1.说明: 安装MySQL主要有两种方法:一种是通过源码自行编译安装,这种适合高级用户定制MySQL的特性,这里不做说明:另一种是通过编译过的二进制文件进行安装.二进制文件安装的方法又分为两种:一种是 ...

  10. C返回函数指针的函数

    如下函数 char (*retCharWithInt(char, char))(int); 申明了函数指针retCharWithInt,该指针指向一个形参是(char,char),返回值是char(* ...