我用我在应用程序中调用的静态方法创建了一个简单的类LogHelper。我可以这样称呼它:跨类的PHP日志记录方法
LogHelper::writeToErrorLog($config->getLogPath(), $exception); or
LogHelper::writeToErrorLog($config->getLogPath(), $exception, $config->getLogFile);
如果没有传入日志文件名,writeToErroLog方法将生成日志文件名。
我有另一个名为Config的类,它基本上接受一个XML文件并通过getters & setter公开这些值。这是在应用程序开始时初始化的。&包含错误日志需要写入的日志路径。
我的要求是我创建一个日志文件,每个应用程序的运行具有相同的文件名。当应用程序结束日志,如果填充,将通过电子邮件发送。
我的应用程序有许多其他的类,用于数据库,解析数据,格式化数据等等,所有这些都需要记录在某个点上。我的大部分错误将来自抛出的异常,这会引发父级,抓到由LogHelper处理的&。有几种情况我不想抛出异常,只想记录信息或错误。
我担心的是我总是把配置传递给需要日志记录的每个类,这感觉不对。另外我只想设置一次错误日志的文件名。有没有最佳实践方法来解决这个问题?
TIA
东西
'我为应用程序的每次运行创建一个具有相同文件名的日志文件 - 你最近怎么做?使用一个随机数还是什么?如果这对你的问题很重要,你应该添加代码。 – hakre 2012-03-08 23:05:20
我已经改变了这种情况,稍微有时间思考一下。当我第一次初始化我的应用程序时,我正在设置日志文件名并将其保存回配置对象,因为无论如何,配置对象都会传递到任何地方。然后当我调用LogHelper时,我从配置对象中取出日志文件。 – StuffandBlah 2012-03-09 10:11:17
我想我的问题应该更专注于OOP,例如当对象依赖于另一个对象并始终需要可用时,最佳方法是什么?我想一个选项可能是将配置对象添加到会话? – StuffandBlah 2012-03-09 10:26:33