The reality is that there are more software engineers (aka developers) in this world that do not understand logging than do. In every modern coding language there is a logging system already in place. For example, in .NET there is Tracing which writes out to a collection of trace listeners. Unified Logging is simply another trace listener which sends data to another repository.
The structure that exist in many organizations today does not help as the task of putting logging in is in the hands of developers.
So way is this the case? Well, developers are not held accountable for knowing what is going on inside the software they build. Many times there is an application support team that the responsibility gets thrown over the wall to. The few developers out there that have had the responsibility of supporting an application and being proactive understand how important getting the right information AT THE RIGHT TIME IS.
Logging information is half the story, in other words collecting information is one half to the solution. The other half which is equally important is knowing when something happens that needs attention. These are two sides of the same coin and each side has a different person held to different accountability standards.
Because these two roles have different motives there needs to be a way to independently set up notifications outside of the information collection. Whether it is Unified Logging or not this is primary objective of any software monitoring setup; let people get notified when they want to get notified, NOT when a developer says they should be notified.
Then analysis comes in…