相关疑难解决方法(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中的方法名称C#

我为log4net创建了ac #wrapper.

它有Debug()和Error()方法.

我想记录记录记录的方法名称,但是如果我尝试使用%方法转换模式,它只打印Debug,它是包装器方法名称.

有没有办法打印完整的方法堆栈?

例如

而不是Debug - > SomeLoggingActionInSomeClass.Debug?

包装类代码:

public static class Logger
{
    private static ILog _log;

    static Logger()
    {
        log4net.Config.XmlConfigurator.Configure();

        _log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
    }

    public static void Init()
    {
    }

    public static void Debug(string message)
    {
        _log.Debug(message);
    }
Run Code Online (Sandbox Code Playgroud)

调用类代码:

W6CustomizationLogger.Logger.Debug("Backup(): START");
Run Code Online (Sandbox Code Playgroud)

.net c# log4net

4
推荐指数
1
解决办法
6046
查看次数

标签 统计

log4net ×2

.net ×1

c# ×1

logging ×1

wrapper ×1