gpt4 book ai didi

c# - 有什么巧妙的方法可以在不让登录困惑代码的情况下应用日志记录?

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:14 24 4
gpt4 key购买 nike

目前我正在实现一个导入模块。但这也是必须记录每个操作的要求。例如。当我导入客户时,我需要检查该客户是否已经存在,如果客户不存在,我需要创建客户。我需要记录这两种情况。

所以现在我有一些这样的代码:

public event Action<string> OnMessageLog;

public void ImportOrder()
{
LogMessage("The order is being created");
var customer = ImportCustomer("MG_001");
var order = new Order{ Customer = customer };
LogMessage("The order is created");

unitOfWork.Orders.AddObject(order);
}

public Customer ImportCustomer(string customerCode)
{
var customer = this.unitOfWork.Customers.GetByCode(customerCode);

if(customer == null)
{
LogMessage("The customer doesn't exists. A new customer is created");
customer = new Customer{ \\.. here some initialization };
}
else
{
LogMessage("The customer exists.");
}

return customer;
}

private void LogMessage(string message)
{
if(OnMessageLog != null)
{
OnMessageLog(message);
}
}

我不太喜欢这样,因为我认为所有“LogMessage(...)”调用都不是很整洁。

作为替代方案,我正在考虑使用装饰器模式,但这变得难以实现,因为导入非常复杂。这意味着我需要为每个 Action 创建 2 个方法(而且我有很多 Action )。

您有什么建议或想法可以使这段代码更易读/更整洁吗?

最佳答案

您可以使用类似 PostSharp 的工具尝试面向方面的编程.

关于c# - 有什么巧妙的方法可以在不让登录困惑代码的情况下应用日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27172643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com