您的位置:首页 > 编程语言 > PHP开发

日志-log4php

2016-12-09 21:10 363 查看

日志

当然,在这里指的不是日常生活中的日记(diary),而是“server-log”,wiki中的定义如下:

A server log is a log file (or several files) automatically created and maintained by a server consisting of a list of activities it performed.

日志指的是由服务器自动创建和维护的一个或多个文件,而这些文件用来记录服务器各项活动的执行记录。

log4php

原意 Log For PHP

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

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

What is Apache log4php?

Apache log4php™ is a versatile logging framework for PHP.

Feature highlights:

Configuration through XML, properties or PHP files

Various logging destinations, including:

Console (stdout, stderr)

Files (including daily and rolling files)

Email

Databases

Sockets

Syslog

Several built-in log message formats, including:

HTML

XML

Nested (NDC) and Mapped (MDC) Diagnostic Contexts.

简单的示例

1. 下载解压

在官网下载zip包,解压后得到文件夹log4php,其核心文件放在log4php/src/main/php下,将该目录下的文件及文件夹拷贝至工程目录下即可使用。

2. 配置

创建config文件,例如config.xml

<configuration xmlns="http://logging.apache.org/log4php/">

<!-- 创建一个名为SimpleFileAppender的appender,class为LoggerAppenderFile表示将log输出到一个文件中, 更多参数可查看配置详细 -->
<appender name="FileAppender" class="LoggerAppenderFile">

<!-- layout标签 class为LoggerLayoutPattern表示通过模式字符串规定log信息的输出格式, 更多参数可查看配置详细 -->
<layout class="LoggerLayoutPattern">

<!-- %date表示log生成时的日期 %logger表示logger %message表示信息 ... 更多格式化输出符可参考配置详情-->
<param name="conversionPattern" value="%date [%logger] %message%newline" />
</layout>

<!-- 设置输出文件的目标路径 -->
<param name="file" value="log/web_system.log" />
</appender>

<!-- LoggerAppenderConsole表示log将输出到控制台上 -->
<!-- 由于未定义<layout>,输出格式将以LoggerLayoutSimple为准 -->
<appender name="SimpleConsoleAppender" class="LoggerAppenderConsole" />

<!-- root logger 的配置列表 -->
<root>

<!-- 设置记录事件的最低级别,例如此处,比WARN级别低的事件将不会被记录 -->
<level value="WARN" />

<!-- 将名为myAppender的appender引入root logger下,所有root logger获取的事件将经由该appender处理 -->
<!-- 所有logger将继承root logger的设置 -->
<appender_ref ref="FileAppender" />
</root>

<!-- hopo logger 的配置列表 -->
<hopo>
<level value="INFO" />

<!-- hopo logger独有的appender -->
<appender_ref ref="SimpleConsoleAppender" />
</hopo>

</configuration>


3. 在项目中使用

<?php

// 将Logger.php文件引入项目中,该文件位于上述log4php/src/main/php目录下,在此已将其拷贝至单独的目录中
include('log4php/Logger.php');

// 通过配置文件配置日志的各项设置
Logger::configure('config.xml');

// 生成logger, 该logger将继承root logger的所有设置
$log = Logger::getLogger('myLogger');

// 开始记录log日志
$log->trace("My first message.");   // Not logged because TRACE < WARN
$log->debug("My second message.");  // Not logged because DEBUG < WARN
$log->info("My third message.");    // Not logged because INFO < WARN
$log->warn("My fourth message.");   // Logged because WARN >= WARN
$log->error("My fifth message.");   // Logged because ERROR >= WARN
$log->fatal("My sixth message.");   // Logged because FATAL >= WARN


配置详解

log 等级

LevelSeverityDescription
FATALHighest致命的错误,非常严重
ERROR出错事件
WARN潜在的威胁事件,但应用仍能运行
INFO用以记录比较野的行为
DEBUG用于调试的记录信息
TRACELowest追踪,用以标识程序执行的轨迹信息

appender

Logging requests can be sent to multiple destinations, such as files, databases, syslog and others. Such destinations are called appenders. Appenders are attached to loggers and each logger can have multiple attached appenders

日志信息可以选择性的输出到不同的终端上去,如文件、数据库、系统日志等等,这些则通过appander来设置。appender附属于logger, 一个logger可以对应一个或多个appender。

官方拥有详细的关于appender的文档

layout

Layouts are components responsible for transforming a logging event into a string.

More often than not, users wish to customize not only the output destination but also the output format. This is accomplished by associating a layout with an appender. All messages logged by that appender will use the given layout.

layout用于控制日志信息的格式,他负责将日志时事件转变成一个特定的字符串

官方有详细的关于layout的文档

To Be Continue…

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php log log4php