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配置文件
<? 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 > |
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的配置文件解释
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的模式来输出 |
这样就可以通过建立多个配置文件,采用灵活管理日志目录,为每一个产品模块采用不同的配置。