在我的PHP Web应用程序中,我希望能够执行以下日志记录操作:
我正在努力决定更好的架构。我有两个想法。哪一个更好?我也向其他人开放。
编辑以下是我可能会选择的内容。
答案 0 :(得分:2)
我不会用。我将使用为每个实现实现相同日志方法的设计。所以它看起来像设计#1,但有点不同。
为您拥有的每种类型的日志创建后代并覆盖日志方法。
然后,为特定目的创建工厂,所以:
这样,当您需要记录查询时,只需调用
即可QueryLoggerFactory->getInstance()->log($query);
在您的应用程序中,您无需调用特定方法。如果您决定要将查询存储在数据库中,则只需在工厂中实例化一个不同的记录器。您甚至可以实例化将自身记录到其他两个记录器的记录器,这样您就可以在数据库中的FireBug 和中存储错误。或者,您可以实例化一个不记录任何内容的void记录器。