所以我最近发现log4*包可用于PHP,在看到这个包后,我迫不及待地从log4php网站下载了最新版本,并按照安装说明进行了操作。根据说明,您需要下载tar包untar,并将以下目录放置在您选择的位置: log4php/src/main/php
因此,我将log4php/src/main/php的内容复制到lib/log4php下的lib目录中。
在我的脚本中,根据需要,我需要'Logger.php‘类,并指定了一个属性文件来管理我的附加器。属性文件"/home1/ioforgec/www/devlab/pnotes/config/log4php.properties".位于我的文件系统上,即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");
?>因此,尽管将示例记录器配置为将消息格式化为普通消息,无论是在记录器声明中还是在阈值命令中,无论是在记录器声明中还是在阈值命令中,都将记录器的级别设置为最大致命级别,但在我看来,打印到控制台就像是默认的根记录器:
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我看到的print语句没有指定的普通格式,并且我看到了两个print语句,debug print (由于记录器config - than上的FATAL设置比DEBUG高得多,所以不应该打印出来)
我到底做错了什么?我已经尝试了我能想到的所有设置组合。有人有什么建议吗?
编辑-更新-这仍然是一个问题。没有进展。
Edit2 -真的吗?这个论坛上有没有人尝试过使用这个非常流行的日志包并将其化为PHP模块?
我已经尝试了所有可能的途径来尝试得到我的问题的答案,包括log4php用户的邮件列表。
发布于 2010-10-20 13:36:14
在对配置文件进行了许多小时的操作之后,我发现了一个很小但非常重要的事实。为了指定一个'logger‘,你必须在'logger’层次结构下给它命名,在'appender‘层次结构下给它命名,等等。例如:
# for the 'console' logger named 'example' we first define the appender:
log4php.appender.consoleAppender = LoggerAppenderConsole
log4php.appender.consoleAppender.target = STDOUT
log4php.appender.consoleAppender.layout = LoggerLayoutSimple
# we then assign the appender and the minimum log level to the logger:
log4php.logger.example = WARN, consoleAppender我的错误是看到了根记录器层次结构名称'log4php.rootLogger‘,并假设要分配一个记录器,只需为'log4php.lognameLogger’命名一个值。遗憾的是,这不是借口,因为文档中有一个隐藏的示例。我认为在9+小时内找到它总比根本找不到要好:)
感谢那些提醒我还有更多的调试工作要做的人,我很感谢他们提醒我继续尝试
https://stackoverflow.com/questions/3964944
复制相似问题