gpt4 book ai didi

c# - 在 NLog 将数据发送到目标之前准备数据?

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:17 25 4
gpt4 key购买 nike

我需要在 NLog 将其发送到目标之前序列化一些对象。我可以编写自定义目标,但我必须为每个可能的日志目标编写自定义目标。

我需要知道的是 NLog 是否会将消息(基于级别)记录到任何目标,如果是,序列化数据。如果日志数据表明根据 NLog 配置不记录的级别,那么我想避免序列化对象,因为这需要时间。

有什么方法可以在 NLog 将数据发送到目标之前准备数据,还是我必须在自定义目标类中解决这个问题?

最佳答案

你可以得到一个Logger并检查 IsXXXEnabled 属性。

例如:

class MyExpensiveClass
{
public void string Serialize()
{
return SomethingExpensive;
}
}

class ThisNeedsLogging
{
private static Logger logger = LogManager.GetCurrentClassLogger();

private MyExpensiveClass expensive = new MyExpensiveClass();

public void TraceSomething()
{
if (logger.IsDebugEnabled)
logger.Debug(expensive.Serialize());
}
}

关于c# - 在 NLog 将数据发送到目标之前准备数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com