php - 日志文件名的常量与属性

标签 php oop

我有一个简单的导入器类,它将成功和失败状态记录到日志文件中。

我已将日志文件名设置为类中的常量,如下所示:

class MyClass
{
    const STATUS_LOG = "my_log.log";

    public function doImport()
    {
         // do import here and log result
    }
}

目前我不知道为什么会使用不同的日志,但最好允许这种灵活性并执行以下操作:

class MyClass
{
    private $statusLog;

    public function __construct($statusLog)
    {
        $this->statusLog = $statusLog;
    }

    public function getStatus()
    {
        return $this->statusLog;
    }

    public function setStatusLog($statusLog)
    {
        $this->statusLog = $statusLog;
    }

    public function doImport()
    {
         // do import here and log result
    }
}

鉴于我目前没有使用不同的日志文件,第二种方法有什么好处吗?

最佳答案

我认为就日志记录而言,您不应该允许更改日志路径。不是在运行时 - 因为有一个问题 - 如果日志路径“热”更改,数据完整性会发生什么?灵活性听起来不错,但我认为这不是您应该允许在运行时更改属性的情况。

如果您对日志路径犹豫不决,那么它应该可以通过配置文件进行调整 - 即在应用程序启动时读取一次。因此,您不会将路径存储在您的类中,而是从配置中读取它(在您的类的 __construct() 中)。

关于php - 日志文件名的常量与属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511127/

相关文章:

php - 每个帖子的评论

php - Parse error : syntax error, unexpected end of file on line(在其他帖子中找不到解决方案)

.net - 在什么情况下不应处理异常?

javascript - 如何将 $(this) 对象从一个函数传递到另一个函数?

c# - 为什么 .NET System.IO.File 使用 Create/Open 而不是构造函数?

php - 将 FPDF 与 Composer 自动加载一起使用

javascript - Yii框架在脚本标签中添加延迟

javascript - 将 jQuery 'rand color' 保存到本地存储?

php - 带条件的 PHP 类别名的替代逻辑

c# - 在没有存储过程的情况下从 SQL Server 表生成 C# 类