public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) { var frames = new StackTrace().GetFrames(); Func<StackFrame, bool> serilogFrames = stack => stack.GetMethod() .DeclaringType .Namespace .StartsWith("serilog.core", StringComparison.InvariantCultureIgnoreCase); var serilogFrameCount = frames.Count(serilogFrames); var callerFrame = frames.Skip(serilogFrameCount + 1).First(); var method = callerFrame.GetMethod().Name; var caller = callerFrame.GetMethod().DeclaringType.FullName; var property = propertyFactory.CreateProperty("LogCaller", new LogCaller {ClassName = caller, Method = method}); logEvent.AddOrUpdateProperty(property); }