Yes, you can make your handler generic with a generic constraint.
public class CommandHandler<T> : INotificationHandler<T> where T : Notifcation
{
//universal handler
public Task Handle(T notification)
{
//serialization and logging, don't care what body will command have
}
}