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的简单使用
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 配置和使用的更多相关文章
- log4php的配置
网上关于log4php配置的文章很多,下面是我的配置,跟网上部分略有不同 (1)添加日志 1.下载log4php,到官网就可以下载到,下载后解压 我的版本是log4php_2.3.0 ...
- log4php的使用方法与详细配置
log4php的使用 首先引入logger.php文件.log4php可以通过引入logger.php来完成自动加载的过程.文件位置如下: 日志记录器自身没有定义日志的输出目的地和格式,所以我们通常需 ...
- log4php使用及配置
log4php使用及配置 1.在项目中加入log4php包 2.log4php配置 在项目配置包中添加logger_config.xml配置文件: logger_config.xml配置文件添加代码如 ...
- PHP日志 LOG4PHP 的配置与使用
维护了 一个老项目, 没有日志功能, 就给加了这个log4php, 主要是集成进去很简单,使用起来也够用了. 1.下载log4php 2.创建配置文件 log4php_config.xml < ...
- Log4PHP日志库使用
库下载地址: http://logging.apache.org/log4php/download.html 当前测试使用的版本为2.3.0 1.解压缩下载的压缩文件apache-log4php-2. ...
- 配置android sdk 环境
1:下载adnroid sdk安装包 官方下载地址无法打开,没有vpn,使用下面这个地址下载,地址:http://www.android-studio.org/
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
随机推荐
- 【原创】Android 5.0 BLE低功耗蓝牙从设备应用
如果各位觉得有用,转载+个出处. 现如今安卓的低功耗蓝牙应用十分普遍了,智能手环.手表遍地都是,基本都是利用BLE通信来交互数据.BLE基本在安卓.IOS两大终端设备上都有很好支持,所以有很好发展前景 ...
- DTCMS插件的制作实例电子资源管理(三)前台模板页编写
总目录 插件目录结构(一) Admin后台页面编写(二) 前台模板页编写(三) URL重写(四) 本实例旨在以一个实际的项目中的例子来介绍如何在dtcms中制作插件,本系列文章非入门教程,部分逻辑实现 ...
- 超简单jQuary链式操作代码实现手风琴效果
超简单jQuery代码实现手风琴效果 HTML代码 <div id="cont"> <div> <p>人生若只如初见</p> < ...
- 零售业山重水复,全景行柳暗花明——VR全景智慧城市
对今天的中国来说,寻找经济转型的突破口,寻找经济权力的新霸主,零售业应该当仁不让. 零售业正在经历一场脱胎换骨的改造.一方面零售额达到前所未有的水平,另一方面,传统零售商也面临诸多挑战,其中之一,便是 ...
- MySQL · 引擎特性 · InnoDB Buffer Pool
前言 用户对数据库的最基本要求就是能高效的读取和存储数据,但是读写数据都涉及到与低速的设备交互,为了弥补两者之间的速度差异,所有数据库都有缓存池,用来管理相应的数据页,提高数据库的效率,当然也因为引入 ...
- Struts2中的JSON问题——后台返回JSON字符串到前台
最近做一个项目遇到一个比较棘手的问题,项目后台采用struts2+Hibernate3+Spring3,前台采用ExtJs4.笔者目前仍是一名大二学生吗,后台框架完全是毫无任何基础,从零学,现学现用. ...
- swift闭包中解决循环引用的问题
swift中可以通过三种方法解决循环引用的问题 利用类似oc方法解决循环引用weak var weakSelf = self weak var weakSelf = self loadData = { ...
- js 高级算法 - 动态规划
主要是看了<数据结构与算法>有所感悟,虽然这本书被挺多人诟病的,说这有漏洞那有漏洞,但并不妨碍我们从中学习知识. 其实像在我们前端的开发中,用到的高级算法并不多,大部分情况if语句,for ...
- XSS研究1-来自外部的XSS攻击
引入: 上文中我们的例子是研究了来自内部的XSS攻击,通过输送一段有害js代码到受害者的机器,让其在受害者的域上运行这段有害JS代码来得到入侵目的.现在我们来看下来自外部的XSS攻击. 实践: 下面还 ...
- javaWeb学习总结(7)-关于session的实现:cookie与url重写
本文讨论的语境是java EE servlet.我们都知道session的实现主要两种方式:cookie与url重写,而cookie是首选(默认)的方式,因为各种现代浏览器都默认开通cookie功能, ...