Avec l'aide d'AOP, je peux supprimer le code de journalisation de ma logique métier. Mais je pense qu'il ne peut être utilisé que pour enregistrer des choses simples (c'est-à-dire l'entrée / la sortie de la méthode d'enregistrement et les valeurs des paramètres).
Cependant, que se passe-t-il si je dois enregistrer quelque chose dans ma logique métier? par exemple
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
}
L'exemple de méthode ci-dessus n'est peut-être pas assez clair, ce que je veux montrer ici, c'est que la méthode doit être traitée comme la plus petite unité du point de vue du domaine. Il ne doit pas être divisé en morceaux plus petits.
Est-il possible de passer au-dessus de 3 codes de journalisation hors de la méthode? Quelle est la meilleure pratique pour une telle situation?