Log4net - как получить имя вызывающего метода при использовании оболочки - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть оболочка log4net для регистрации сообщений об ошибках в приложении web api. Он работает нормально, но я не могу записать имя вызывающего метода. Отображается только имя метода верхнего уровня. Допустим, у меня есть метод a класса A, который вызывает метод b класса B, а b регистрирует сообщение об ошибке. Log4net отображает только класс A и метод a, но я хочу отобразить либо полную цепочку вызовов A-a-B-b, либо хотя бы B-b

private static readonly ILog LoggerObject = LogManager.GetLogger("ErrorLog");

log4net config

<log4net>
    <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
        <file value="LogBackUp2.log" />
        <staticLogFileName value="false" />
        <appendToFile value="true" />
        <rollingStyle value="Date" />
        <datePattern value="yyyy-MM-dd.'Err'" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%M %C] - %message%newline" />
        </layout>
    </appender>
    <logger name="ErrorLog">
        <maximumFileSize value="15MB" />
        <appender-ref ref="ErrorLog" />
    </logger>
</log4net>

Если я использую это, log4net не создает файл журнала.

LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
...