0

我想创建一个日志系统,不是记录异常,而是记录用户活动以及他们对数据所做的事情。例如,当用户删除记录时,我想记录用户名、记录 ID、日期和...。

首先,我决定创建一个日志类并在所有其他类方法中使用它的方法。但是经过一些阅读博客和搜索之后,我发现这种方法违反了 OOP 的 SRP 原则。

现在我正在考虑另一种解决方案。我还有我的日志类。但不是在代码中调用它的方法,我应该使用事件。我正在考虑添加一个订阅由其他类调用的事件的侦听器类。

假设在页面中我有一个删除订单的方法:

protected void DeleteOrder(Order order)
{
    Orders.Delete(order);
    DeletedEvent(this,order); 
}

然后订阅者使用发送的数据创建日志。此类检查对象类型并根据类型调用正确的私有方法以使用对象属性创建日志。

这一般适用吗?如果是这样,这是一个好方法吗?提前致谢

4

1 回答 1

1

是的,你的方法很好。

这是一个 MVC.NET 应用程序吗?看看这篇文章:

http://weblogs.asp.net/shijuvarghese/archive/2011/07/18/user-activity-logging-in-asp-net-mvc-app-using-action-filter-and-log4net.aspx

于 2012-09-26T12:43:37.343 回答