我們一直在使用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有關(在我的初次閱讀之後)。一些框架將代碼注入到IL中(根據我的理解),並擔心它是否會誤導我。我可能會看到由我的AOP框架給出的第x行,因爲它實際上可能是我的應用程序中的第y行。我的恐懼沒有根據嗎?
性能:如果使用AOP框架,會增加多少性能開銷。
編輯:我也在調查PolicyInjectionApplicationBlock。不幸的是,我沒有改變implementaions的奢侈品我的業務邏輯
不行,不是一切。只是重要的方法調用 – ram