我有一个log4net包装器,用于在Web api应用程序中记录错误消息。它工作正常,但我无法记录调用方法的名称。它仅显示顶级方法名称。可以说,我有一个类A的方法a,它调用了类B的方法b,并且b记录了错误消息。 Log4net仅显示Class A和方法a,但我想显示完整的调用链A-a-B-b或至少B-b
private static readonly ILog LoggerObject = LogManager.GetLogger("ErrorLog");
log4net配置
<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)
答案 0 :(得分:0)
使用%stacktrace{5}
显示5个堆栈跟踪级别,这些级别导致调用log方法。用您想要的级别替换5。例如:
<conversionPattern value="%date [%thread] %-5level %logger [%stacktrace{5}] - %message%newline" />