PerformanceCounterCached LookupPerformanceCounter(LogEventInfo logEventInfo)
        {
            var perfCounterCached = _fixedPerformanceCounter;

            if (perfCounterCached != null)
            {
                return(perfCounterCached);
            }

            perfCounterCached = _performanceCounter;
            var machineName  = _machineName?.Render(logEventInfo) ?? string.Empty;
            var instanceName = _instance?.Render(logEventInfo) ?? string.Empty;

            if (perfCounterCached != null && perfCounterCached.MachineName == machineName && perfCounterCached.InstanceName == instanceName)
            {
                return(perfCounterCached);
            }

            var perfCounter = CreatePerformanceCounter(machineName, instanceName);

            perfCounterCached = new PerformanceCounterCached(machineName, instanceName, perfCounter);
            if ((_machineName?.Text == null || _machineName.IsFixedText) && (_instance?.Text == null || _instance.IsFixedText))
            {
                _fixedPerformanceCounter = perfCounterCached;
            }
            else
            {
                _performanceCounter = perfCounterCached;
            }
            return(perfCounterCached);
        }
Example #2
0
        PerformanceCounterCached LookupPerformanceCounter(LogEventInfo logEventInfo)
        {
            var perfCounterCached = _fixedPerformanceCounter;

            if (perfCounterCached != null)
            {
                return(perfCounterCached);
            }

            perfCounterCached = _performanceCounter;
            var machineName  = _machineName?.Render(logEventInfo) ?? string.Empty;
            var instanceName = _instance?.Render(logEventInfo) ?? string.Empty;

            if (perfCounterCached != null && perfCounterCached.MachineName == machineName && perfCounterCached.InstanceName == instanceName)
            {
                return(perfCounterCached);
            }

            var perfCounter = CreatePerformanceCounter(machineName, instanceName);

            perfCounterCached = new PerformanceCounterCached(machineName, instanceName, perfCounter);
            if ((ReferenceEquals(_machineName, null) || (_machineName as SimpleLayout)?.IsFixedText == true) && (ReferenceEquals(_instance, null) || (_instance as SimpleLayout)?.IsFixedText == true))
            {
                _fixedPerformanceCounter = perfCounterCached;
            }
            else
            {
                _performanceCounter = perfCounterCached;
            }
            return(perfCounterCached);
        }
 private void ResetPerformanceCounters()
 {
     _fixedPerformanceCounter = null;
     _performanceCounter      = null;
 }