gpt4 book ai didi

zend-framework - Zend_Log 在 application.ini 中有多个编写器

转载 作者:行者123 更新时间:2023-12-03 20:50:13 24 4
gpt4 key购买 nike

我的配置中有这样一个记录器:

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream = APPLICATION_PATH "/../logs/err.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority = 3

但我只想将它用于错误日志。对于另一个日志想使用另一个日志文件。出于这个原因,我将这些行添加到 app.ini

resources.log.stream.writerName = "Stream"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/debug.log"
resources.log.stream.writerParams.stream[] = APPLICATION_PATH "/../logs/info.log"
resources.log.stream.writerParams.mode = "a"
resources.log.stream.filterName = "Priority"
resources.log.stream.filterParams.priority[] = 7
resources.log.stream.filterParams.priority[] = 5

但这不起作用,我想为不同的优先级使用不同的文件。但是记录器会覆盖第一个记录器。怎么样?

最佳答案

application.ini 示例:

resources.log.err.writerName = "Stream"
resources.log.err.writerParams.stream = APPLICATION_PATH "/../data/logs/ERR.log"
;resources.log.stream.formatterParams.format = "%priority%:%message% %timestamp% %priorityName% %info% PHP_EOL"
resources.log.err.filterName = "Priority"
resources.log.err.filterParams.priority = 3
resources.log.err.filterParams.operator = "=="

resources.log.warn.writerName = "Stream"
resources.log.warn.writerParams.stream = APPLICATION_PATH "/../data/logs/WARN.log"
;resources.log.warn.formatterParams.format = "%priority%:%message%:%ip%:%userid% %timestamp% %priorityName% %info% PHP_EOL"
resources.log.warn.filterName = "Priority"
resources.log.warn.filterParams.priority = 4
resources.log.warn.filterParams.operator = "=="

在 Bootstrap 中:

protected function _initLog() {
$options = $this->getOption('resources');
$partitionConfig = $this->getOption('log');
$logOptions = $options['log'];
$logger = Zend_Log::factory($logOptions);
$logger->addPriority('USERACTION', 8);
$logger->addPriority('DBLOG', 9);
Zend_Registry::set('logger', $logger);
}

然后在代码中:

$this->logger = Zend_Registry::get('logger');
$this->logger->setEventItem('ip', $_SERVER['REMOTE_ADDR']);
$this->logger->setEventItem('userid', $this->userId);

这样使用:

$this->logger->log('Test error', Zend_Log::WARN);

或者这样:

$this->logger->warn('Test error');

或者这样:

$this->logger->log('Test error', 4);

关于zend-framework - Zend_Log 在 application.ini 中有多个编写器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com