Log4PHP 配置和使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log4PHP 配置和使用相关的知识,希望对你有一定的参考价值。

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的简单使用

   1.建立Log4PHP的XML配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <configuration xmlns="http://logging.apache.org/log4php/">
 3     <!-- 标准控制台输出的appender -->
 4     <appender name="STDOUT" class="LoggerAppenderConsole">
 5         <param name="threshold" value="debug"/>
 6         <layout class="LoggerLayoutPattern" >
 7             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
 8         </layout>
 9     </appender>
10                                                                                                                                                                                                                                                                                                                                                                           
11     <!-- 记录所有ERROR日志的appender -->
12     <appender name="ERROR-ALL" class="LoggerAppenderDailyFile">
13         <layout class="LoggerLayoutPattern" >
14             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
15         </layout>
16         <param name="file" value="log/php-error.log.%s" />
17         <param name="threshold" value="error"/>
18         <param name="append" value="true" />
19         <param name="datePattern" value="Y-m-d" />
20     </appender>
21                                                                                                                                                                                                                                                                                                                                                                           
22     <!-- 记录所有DEBUG日志的appender -->
23     <appender name="DEBUG-ALL" class="LoggerAppenderDailyFile">
24         <layout class="LoggerLayoutPattern" >
25             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
26         </layout>
27         <param name="file" value="log/php-debug.log.%s" />
28         <param name="threshold" value="debug"/>
29         <param name="append" value="true" />
30         <param name="datePattern" value="Y-m-d" />
31     </appender>
32                                                                                                                                                                                                                                                                                                                                                                           
33     <!-- 记录所有INFO日志的appender -->
34     <appender name="INFO-ALL" class="LoggerAppenderDailyFile">
35         <layout class="LoggerLayoutPattern" >
36             <param name="ConversionPattern" value="[%date{Y-m-d H:i:s,u}] [%t] %-5p %l - %message%newline%ex"/>
37         </layout>
38         <param name="file" value="log/php-info.log.%s" />
39         <param name="threshold" value="info"/>
40         <param name="append" value="true" />
41         <param name="datePattern" value="Y-m-d" />
42     </appender>
43                                                                                                                                                                                                                                                                                                                                                                           
44     <root>
45         <level value="warn"/>
46         <appender-ref ref="STDOUT"/>
47         <appender-ref ref="DEBUG-ALL"/>
48         <appender-ref ref="INFO-ALL"/>
49         <appender-ref ref="ERROR-ALL"/>
50     </root>
51 </configuration>

 

   2.简单PHP测试

 1 <?php
 2   require_once(‘log4php/Logger.php‘);
 3   Logger::configure(‘log4php.xml‘);
 4   $pay = Logger::getRootLogger();
 5   $pay->info(‘测试LOG4PHP‘);
 6   //$pay->warn("测试LOG4PHP");
 7   //$pay->debug("测试LOG4PHP");
 8   //$pay->error("测试LOG4PHP");
 9   //$pay->fatal("测试LOG4PHP");
10 ?>

运行PHP文件即可,即:

   info 、debug 不会产生文件

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

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

 

4.Log4PHP的配置文件解释

   1)LOG4PHP由三部分构成:

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

           (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()函数进行记录

           (3)输出的格式:日志输出的格式,LOG4PHP有5种输出方式

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

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


 

文章来源:http://dreameng.blog.51cto.com/1187899/1410361

以上是关于Log4PHP 配置和使用的主要内容,如果未能解决你的问题,请参考以下文章

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

从零开始配置vim(27)——代码片段

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

VSCode 配置 用户自定义代码片段 自定义自动代码补充

VSCode自定义代码片段11——vue路由的配置