8833545 log: Avoid pushing the same fields more than once on the log context

Authored and Committed by daandemeyer a year ago
    log: Avoid pushing the same fields more than once on the log context
    
    Let's try to optimize against pushing the same fields multiple times
    onto the log context. To achieve this we make the log context reference
    counted and return an existing context object if it's using the same
    fields.
    
    A consequence of this is that we have to make sure attaching/detaching
    is coupled to the lifetime of the context object, so we make the attach
    and detach functions private for now. If we need independent attach/detach
    in the future, we can make that work with some extra complexity but since
    we don't need it yet, let's not support it for now.
    
        
file modified
+24 -4
file modified
+10 -12
file modified
+10 -8