Why my log messages always have the top level operation name?

Viewed 36

When logging from the inner scope of a nested operation the log message has the "Operation Name" set to the top-level operation

using (IOperationHolder<RequestTelemetry> topHolder = telemetryClient.StartOperation<RequestTelemetry>("TopOperation1"))
    {
        //telemetryClient.TrackTrace("top holder log 111");
        logger.LogWarning("top holder log 1");
    
        using (IOperationHolder<RequestTelemetry> innerHolder = telemetryClient.StartOperation<RequestTelemetry>("InnerOperation1"))
        {
            //telemetryClient.TrackTrace("inner holder log 1 111");
            logger.LogWarning("inner holder log 1");
        }
    }

enter image description here

1 Answers

for the new operation to be a child you will need to provide a parent id to that operation. Start the child operation by providing following parameters.

.StartOperation<RequestTelemetry>("InnerOperation1",Guid.NewGuid().ToString(), Activity.Current.Id)
Related