日志-log4php

Apache log4php是Apache组织维护的PHP日志框架,类似于Java中的log4j。它提供XML、属性或PHP文件配置,支持多种日志目的地,如控制台、文件、邮件、数据库等。本文介绍了如何下载、配置和在项目中使用log4php,包括日志等级、appender和layout的配置。后续内容未展开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

日志

当然,在这里指的不是日常生活中的日记(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…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值