gpt4 book ai didi

c# - 日志记录更改实现?

转载 作者:行者123 更新时间:2023-11-30 21:23:11 25 4
gpt4 key购买 nike

我们一直在使用 log4net 来记录我们的 asp.net web 表单应用程序。我们的日志记录通常在我们的业务层,典型的实现是这样的

SomeMethodCall(MethodParams)
{
Log.Start("Starting Some Method");
try
{
//do something
}
catch(Exception ex)
{
Log.Exception("exception in SomeMethodCall" + ex.message);
}

Log.End("End SomeMethod");
}

在我看来,它有点笨拙。有没有不使用 AOP 的更简洁的方法?我不确定我是否需要增加一个框架的开销,只是为了日志记录,我想我知道它会给我很多其他选择(我这样做不需要)

我正在考虑使用一些 AOP 框架以更简洁的方式来做到这一点,只需通过使用属性标记方法来记录和处理异常。

我对 AOP 有两点担心(在我初步阅读之后)。

一些框架将代码注入(inject)您的 IL(根据我的理解),我担心它是否会误导我。我可能正在查看由我的 AOP 框架提供的第 x 行,而实际上它可能是我的应用程序中的第 y 行。我的恐惧是没有根据的吗?

性能:如果使用 AOP 框架,会增加多少性能开销。

编辑:我也在调查 PolicyInjectionApplicationBlock .不幸的是,我没有在我的业务逻辑中更改实现的奢侈

最佳答案

你是说你的大部分/所有方法都采用这种结构吗?如果是这样,我的建议是减少日志记录。 (我强调这是建议,也可能是有争议的建议)。

确实不需要以这种方式对每个方法的进入和退出使用一揽子日志,而是更有策略地放置您的日志条目。我想确保所有日志消息都有一个“目的”——如果我想不出该日志消息在调试时会以某种方式帮助或帮助我的场景,那么它就没有用在我的代码中了!

关于c# - 日志记录更改实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1928391/

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