Skip to main content

Notifications

Announcements

No record found.

Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Living In Technology / Effective Logging in Micros...

Effective Logging in Microsoft Dynamics 365 Plugins: Best Practices and Examples

jestuder Profile Picture jestuder 156

Microsoft Dynamics 365 is a powerful suite of business applications that provides organizations with tools for managing customer relationships, sales, and operations. One of the essential aspects of developing custom plugins for Dynamics 365 is proper logging to ensure smooth functionality and easy debugging.

In this blog post, we'll discuss best practices for logging in Microsoft Dynamics 365 plugins and provide examples to help you implement effective logging in your custom solutions.

Understanding the Plugin Trace Log

Microsoft Dynamics 365 provides a built-in logging mechanism called the Plugin Trace Log. The Plugin Trace Log can be used to record custom messages, exceptions, and other information for debugging purposes. To enable the Plugin Trace Log, follow these steps:

  • Navigate to Settings > Administration > System Settings.
  • Under the Customization tab, locate the "Plugin and Custom Workflow Activity Tracing" section.
  • Set the option to "All" or "Exception" based on your requirements.

With the Plugin Trace Log enabled, you can use the ITracingService to log messages within your plugin code.

Using the ITracingService

`ITracingService` is an interface provided by the Microsoft Dynamics 365 SDK. It offers a simple and powerful way to log messages and exceptions in your plugins. To use the `ITracingService`, you need to instantiate it from the `IServiceProvider` passed to your plugin's Execute method.

Example:

 public class MyPlugin : IPlugin  
{
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
// Log a simple message
tracingService.Trace("MyPlugin started execution.");
}
}

Logging Exceptions

When an exception occurs in your plugin, it's crucial to log the error details for troubleshooting purposes. With the `ITracingService`, you can log the exception message and the stack trace.

Example:

 public class MyPlugin : IPlugin  
{
public void Execute(IServiceProvider serviceProvider)
{
// Obtain the tracing service
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
try
{
// Your plugin logic here
}
catch (Exception ex)
{
tracingService.Trace("An exception occurred in MyPlugin: {0}", ex.ToString());
throw new InvalidPluginExecutionException($"An error occurred in MyPlugin: {ex.Message}", ex);
}
}
}

Monitoring the Plugin Trace Log

Once your plugin logs messages using the `ITracingService`, you can view them in the Plugin Trace Log. To access the log, navigate to Settings > Customizations > Plugin Trace Log in the Dynamics 365 web application. The Plugin Trace Log provides filtering and sorting options to help you analyze log data and troubleshoot issues.

Conclusion

In this blog post, we've discussed the best practices for logging in Microsoft Dynamics 365 plugins, including enabling and monitoring the Plugin Trace Log, using the `ITracingService`, structured logging, performance optimization, and log retention. By implementing these practices, you can ensure that your custom plugins are more maintainable, reliable, and easier to troubleshoot.

References



Comments

*This post is locked for comments