Php 运行时的log4ppp属性设置

Php 运行时的log4ppp属性设置,php,database,logging,log4php,Php,Database,Logging,Log4php,我有一个PHP应用程序,其中包含多个模块和每个模块中的各种设置。我想使用log4ppp启用日志记录,但每个模块都有不同的设置(即日志级别、日志文件等)。其中一些设置需要最终用户动态更改(日志级别),我希望将这些属性存储在数据库中 现在我可以动态设置日志级别。但我无法确定如何动态设置其他属性。关于log4ppp配置的文档几乎完全是通过properties/xml文件完成的,尽管它说所有设置都可以通过编程方式更改 有人做过这样的事吗?如果是,我该如何做?我已经在查看了文档,但我需要更多帮助 为了澄清

我有一个PHP应用程序,其中包含多个模块和每个模块中的各种设置。我想使用log4ppp启用日志记录,但每个模块都有不同的设置(即日志级别、日志文件等)。其中一些设置需要最终用户动态更改(日志级别),我希望将这些属性存储在数据库中

现在我可以动态设置日志级别。但我无法确定如何动态设置其他属性。关于log4ppp配置的文档几乎完全是通过properties/xml文件完成的,尽管它说所有设置都可以通过编程方式更改

有人做过这样的事吗?如果是,我该如何做?我已经在查看了文档,但我需要更多帮助


为了澄清-我不想使用配置文件,因为最终用户将无法直接访问这些文件。我将提供一个前端来更改某些日志记录设置,所有设置都将存储在数据库中。

查看API文档后,我发现他们正在使用配置适配器和策略模式来配置日志记录程序。适配器有一个方法,由主记录器调用。有一个,它将读取/包含返回常规PHP数组的PHP文件。我可以想象,这可以很容易地修改为接受从数据库返回的数组。看看这个类的源代码作为起点。您需要创建的是一个
LoggerConfiguratorDB
,然后可以像下面这样将其传递给主记录器类:

$configurator = dirname(__FILE__).'/../resources/configurator_db.php';
Logger::configure( $configurator, 'LoggerConfiguratorDb');
我从未使用过Log4Php,这只是通过查看API来假设的。我完全不知道新的适配器应该是什么样子。但也许这会让你走上正确的方向


如果你想得到一些东西,为什么不把它捐给这个项目:)

在下载的档案中,你可以在文件“src/examples/php/configurator_php.php”中找到一个如何做到这一点的例子。然而,log4ppv2.1.0是我实际使用的第一个版本。