所以我最近发现 log4* 包可用于 PHP,看到这个包后,我急切地从 log4php 网站下载了最新版本,并按照安装说明进行操作。说明说明一种是下载tar包,解压,在自己选择的地方放如下目录:log4php/src/main/php
因此,我将内容复制log4php/src/main/php
到了 lib/log4php 下的 lib 目录中。
在我的脚本中,根据需要,我需要“Logger.php”类并指定一个属性文件来管理我的附加程序。属性文件 log4php.properties 位于我的文件系统中的“/home1/ioforgec/www/devlab/pnotes/config/log4php.properties”。
这是日志文件内容:
#
# Example Logger
#
log4php.appender.EA1 = LoggerAppenderConsole
log4php.appender.EA1.target = STDOUT
log4php.appender.EA1.layout = LoggerLayoutPattern
log4php.appender.EA1.ConversionPattern = "%m"
log4php.appender.EA1.threshold = FATAL
log4php.exampleLogger = FATAL, EA1
所以这是我实现的脚本的副本(或多或少“包装”了 log4php 功能):
<?php
require_once('/home1/ioforgec/www/devlab/pnotes/lib/log4php/Logger.php');
class LogUtil
{
public $logger;
public $properties_file = "/home1/ioforgec/www/devlab/pnotes/config/log4php.properties";
public static function logExample($msg)
{
Logger::configure($properties_file);
$logger = Logger::getLogger("example");
$logger->debug("Shouldnt see this print because of config max level FATAL");
$logger->fatal($msg);
}
}
?>
为了测试它是否正常工作,以下脚本调用上面显示的 LogUtil.php:
#!/usr/bin/php
<?php
require_once("lib/utils/LogUtil.php");
LogUtil::logExample("example message");
?>
因此,尽管将示例记录器配置为将消息格式化为普通消息,尽管将记录器的级别设置为 FATAL 的最大值,不仅在记录器声明中而且在阈值命令中,控制台的打印看起来对我来说像默认的根记录器:
Mon Oct 18 20:30:05 2010,705 [827] DEBUG example - Shouldnt see this print because of config max level FATAL
Mon Oct 18 20:30:05 2010,711 [827] FATAL example - example message
我看到没有指定纯格式的打印语句,我看到两个打印语句,调试打印(由于记录器配置上的 FATAL 设置,它不应该打印 - FATAL 比 DEBUG 高得多)
我到底做错了什么?我已经尝试了我能想到的所有设置组合。有没有人有什么建议?
编辑 - 更新 - 这仍然是一个问题。没有进展。
Edit2 - 真的吗?这个论坛上没有人尝试过使用这个非常流行的日志包及其作为 PHP 模块的化身吗?
我已经尝试了所有可能的途径来尝试回答我的问题,包括 log4php 用户的邮件列表。