How to log MethodName when wrapping Log4net?
.net, log4net, logging
Solution
Well the error was somewhere in my appender but for completeness ill include the answer to the best of my knowledge:
the Facade you need should wrap ILogger and NOT ILog
public static class Logger
{
private readonly static Type ThisDeclaringType = typeof(Logger);
private static readonly ILogger defaultLogger;
static Logger()
{
defaultLogger =
LoggerManager.GetLogger(Assembly.GetCallingAssembly(),"MyDefaultLoggger");
...
public static void Info(string message)
{
if (defaultLogger.IsEnabledFor(infoLevel))
{
defaultLogger.Log(typeof(Logger), infoLevel, message, null);
}
}
Problem
I have wrapped Log4net in a static wrapper and want to log ``` loggingEvent.LocationInformation.MethodName loggingEvent.LocationInformation.ClassName ``` However all I get is the name of my wrapper. How can I log that info using a forwardingappender and a static wrapper class like ``` Logger.Debug("Logging to Debug"); Logger.Info("Logging to Info"); Logger.Warn("Logging to Warn"); Logger.Error(ex); Logger.Fatal(ex); ```