AOP की मदद से, मैं अपने व्यावसायिक तर्क से लॉगिंग कोड को हटा सकता हूं। लेकिन मुझे लगता है कि इसका उपयोग केवल साधारण चीजों को लॉग करने के लिए किया जा सकता है (अर्थात लॉगिंग विधि प्रविष्टि / निकास और पैरामीटर मान)।
हालाँकि, क्या होगा अगर मुझे अपने व्यावसायिक तर्क में कुछ लॉग इन करने की आवश्यकता है? जैसे
public void SomeDomainMethod(string id)
{
//Get user by Id
User user = Users.Get(id);
if (user == null)
{
Log.Warn("user is not existed"); //<----------------- Log A
throw new InvalidOperationException("user is not existed");
}
//Step 1
while(true)
{
//do something
}
Log.Info("Step 1 is completed"); //<----------------- Log B
//Step 2
while(true)
{
//do something
}
Log.Info("Step 2 is completed"); //<----------------- Log C
}
उपरोक्त नमूना विधि पर्याप्त स्पष्ट नहीं हो सकती है, जो मैं यहां दिखाना चाहता हूं वह यह है कि इस पद्धति को डोमेन के दृष्टिकोण से सबसे छोटी इकाई माना जाना चाहिए। इसे छोटे टुकड़ों में विभाजित नहीं किया जाना चाहिए।
क्या विधि से 3 लॉगिंग कोड से ऊपर जाना संभव है? ऐसी स्थिति के लिए सबसे अच्छा अभ्यास क्या है?