mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 09:15:27 +08:00 
			
		
		
		
	Update OcelotLogger to accept name of class
OcelotLogger now has a property called "Name" intended to store the name of the type for which the logger has been built for. This is intended to keep the code a little bit cleaner and also allows for a few extention methods for common logging scenarios
This commit is contained in:
		@@ -9,8 +9,11 @@ namespace Ocelot.Logging
 | 
			
		||||
        private readonly ILogger _logger;
 | 
			
		||||
        private readonly IRequestScopedDataRepository _scopedDataRepository;
 | 
			
		||||
 | 
			
		||||
        public AspDotNetLogger(ILogger logger, IRequestScopedDataRepository scopedDataRepository)
 | 
			
		||||
        {
 | 
			
		||||
        public string Name { get; }
 | 
			
		||||
 | 
			
		||||
        public AspDotNetLogger(ILogger logger, IRequestScopedDataRepository scopedDataRepository, string typeName)
 | 
			
		||||
        {
 | 
			
		||||
            Name = typeName;
 | 
			
		||||
            _logger = logger;
 | 
			
		||||
            _scopedDataRepository = scopedDataRepository;
 | 
			
		||||
        }
 | 
			
		||||
@@ -34,16 +37,16 @@ namespace Ocelot.Logging
 | 
			
		||||
            _logger.LogError(GetMessageWithOcelotRequestId(message), args);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private string GetMessageWithOcelotRequestId(string message)
 | 
			
		||||
        {
 | 
			
		||||
            var requestId = _scopedDataRepository.Get<string>("RequestId");
 | 
			
		||||
 | 
			
		||||
            if (requestId == null || requestId.IsError)
 | 
			
		||||
        private string GetMessageWithOcelotRequestId(string message)
 | 
			
		||||
        {
 | 
			
		||||
            var requestId = _scopedDataRepository.Get<string>("RequestId");
 | 
			
		||||
 | 
			
		||||
            if (requestId == null || requestId.IsError)
 | 
			
		||||
            {
 | 
			
		||||
                return $"{message} : OcelotRequestId - not set";
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            return $"{message} : OcelotRequestId - {requestId.Data}";
 | 
			
		||||
        }
 | 
			
		||||
            return $"{message} : OcelotRequestId - {requestId.Data}";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -17,7 +17,7 @@ namespace Ocelot.Logging
 | 
			
		||||
        public IOcelotLogger CreateLogger<T>()
 | 
			
		||||
        {
 | 
			
		||||
            var logger = _loggerFactory.CreateLogger<T>();
 | 
			
		||||
            return new AspDotNetLogger(logger, _scopedDataRepository);
 | 
			
		||||
            return new AspDotNetLogger(logger, _scopedDataRepository, typeof(T).Name);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -15,5 +15,10 @@ namespace Ocelot.Logging
 | 
			
		||||
        void LogDebug(string message, params object[] args);
 | 
			
		||||
        void LogError(string message, Exception exception);
 | 
			
		||||
        void LogError(string message, params object[] args);
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// The name of the type the logger has been built for.
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        string Name { get; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										29
									
								
								src/Ocelot/Logging/OcelotLoggerExtensions.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								src/Ocelot/Logging/OcelotLoggerExtensions.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace Ocelot.Logging
 | 
			
		||||
{
 | 
			
		||||
    public static class OcelotLoggerExtensions
 | 
			
		||||
    {
 | 
			
		||||
        public static void TraceMiddlewareEntry(this IOcelotLogger logger)
 | 
			
		||||
        {
 | 
			
		||||
            logger.LogTrace($"entered {logger.Name}");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void TraceInvokeNext(this IOcelotLogger logger)
 | 
			
		||||
        {
 | 
			
		||||
            logger.LogTrace($"invoking next middleware from {logger.Name}");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void TraceInvokeNextCompleted(this IOcelotLogger logger)
 | 
			
		||||
        {
 | 
			
		||||
            logger.LogTrace($"returned to {logger.Name} after next middleware completed");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static void TraceMiddlewareCompleted(this IOcelotLogger logger)
 | 
			
		||||
        {
 | 
			
		||||
            logger.LogTrace($"completed {logger.Name}");
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user