相关疑难解决方法(0)

使用包装器时,如何保留Log4Net的类和方法名称以进行记录?

我需要一个Log4net包装器 - 在大型应用程序中暴露给许多不同的组件.我显然希望在记录时保留类和方法名称,但我不会将类型等传递给我的包装器.

我看了一下这个与我非常相似的问题,但没有用.

我已经看到它在另一个问题中用smt 完成,如下所示:

MethodBase methodBase = new StackTrace().GetFrame(1).GetMethod();
this.log.Debug(methodBase.Name + " : " + message);
Run Code Online (Sandbox Code Playgroud)

这并不理想,因为它没有使用开箱即用的Log4Net功能.

我想知道人们在做切线之前是如何做到这一点的,然后想出一些非常复杂的东西.任何指针(链接/资源/样本)赞赏!

logging log4net wrapper

7
推荐指数
1
解决办法
3765
查看次数

如何知道log4net是否记录了错误

我在我的控制台应用程序中使用log4net,我log.Error("Message to log");在if/else结构中多次使用.
我的应用程序必须返回一个代码,该代码指定在应用程序运行期间是否发生错误(0→ok,1→至少发生1个错误).
有没有办法询问log4net是否记录了错误,例如:

bool b = LogManager.AtLeastOneErrorHasBeenLogged;
Run Code Online (Sandbox Code Playgroud)

c# log4net

7
推荐指数
1
解决办法
3248
查看次数

不调试时Log4Net消息构造成本

根据这篇 log4net文章,您应该检查是否在任何Log.Debug语句之前启用了调试以消除语句构造成本.是否有更好的替代方法,总是必须在任何日志语句之前检查是否(Log.IsDebugEnabled)?

Log4Net示例:

if (log.IsDebugEnabled)
{ 
    log.Debug("This is entry number: " + i );
}
Run Code Online (Sandbox Code Playgroud)

我不想支付语句构造的开销成本,但也不想在每个日志语句之前检查.

c# log4net

3
推荐指数
1
解决办法
1436
查看次数

标签 统计

log4net ×3

c# ×2

logging ×1

wrapper ×1