2011-02-28 77 views
1

我正在执行的系统的性质目前需要对用户执行的所有访问/操作进行严格的日志记录。Symfony的审计日志,最佳实践

我知道我可以使用symfony记录器记录不同的动作,但有没有一种干净的方式来做到这一点?我宁愿避免每次使用不同的消息进行多次日志调用,具体取决于正在访问的函数,是否有我可以覆盖一个类,以便我的日志调用只有一次。我需要存储尽可能多的信息,以便我可以重新跟踪任何用户在任何给定时间执行的所有步骤。

我将寻找一个可能有所帮助的插件。

感谢您的任何信息!

回答

0

我在考虑扩展sfActions。

code mySfActions extends sfActions 
{ 
    public function preExecute() 
    { 
    //log this->getActionName(), $this->getModuleName(), __FILE__ etc 
    //capture user information ($this->getUser() should work) 

    // then call this function to ensure all current preExecute methods work correctly 
    parent::preExecute() 
    } 
} 

然后我所有的actions.class.php文件将扩展这个类而不是sfActions。

这样它应该给我足够的信息,但我只在代码中得到了一次。

想法?

+0

事实上,'父:: preExecute()'调用将需要在所有当前preExecute功能结束 – jollop1 2011-02-28 15:15:21

1

您可以使用sfFilter来避免扩展记录模块和路由操作的所有操作。你可以看到this post,我做了这样的事情,但可以引导你。

你还可以看到this这也解释了如何使用sfFilters