For the 1st approach, it is more granular control over alert conditions and logic since it can integrate with other Azure services quickly through Logic Apps.
Alerts can be easily managed and configured for different conditions.
In the other hand, you may have a higher cost due to multiple services involved (log workspace, alerting, logic app execution) and I assume that it is slightly more complex to set up initially.
For the 2nd approach, I can say it is simpler to set up and manage as it's primarily centered around the Logic App and can be more cost-effective if only executed when there's an error (assuming low error rate).
But it is less flexibile compared to the 1st method, especially if you want to integrate with other services in the future.
Be careful it might not be as scalable as you want especially when you want to add more complex logic or conditions in the future.
In my opinion, the 1st method may be more efficient in terms of functionality and scalability.
With Logic Apps and Alerts combined, you have more control and flexibility over how and when you want to be notified, and it can be easily expanded upon in the future.
The 2nd method could be more cost-effective, especially if the Logic App only runs when there's an error.
However, the cost difference might not be significant unless you have a very high volume of logs or errors.