私はインターフェースを持っています
public interface ILoggerService
{
void Info(string message);
void Warn(string message);
}
次に、このインターフェイスを実装し、Log4Netを使用してログを記録するクラスがあります
public class Log4NetLoggerService : ILoggerService
{
private readonly ILog _logger;
public Log4NetLoggerService()
{
// this always returns Log4NetLoggerService class type
_logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
public void Info(string message)
{
_logger.Info(message);
}
}
これは正常に機能しますが、問題は、現在のクラスとメソッド名を(%class-%Mを使用して)ログに記録する場合、これは常にLog4NetLoggerService
クラスとして返され、メソッドとしてはメソッドとして返さInfo
れることです。
loggingメソッドを呼び出す「親」クラスタイプを取得する必要があります。
ILoggerService
インスタンスを作成するときにlogメソッドを呼び出すクラスのタイプをなんとかして注入できますか?