gpt4 book ai didi

c# - 将值传递给 NLog 自定义 LayoutRenderer

转载 作者:行者123 更新时间:2023-12-04 05:56:11 24 4
gpt4 key购买 nike

好的,现在我知道如何编写自定义 布局渲染

  • 写一个类 MylayoutRender 继承布局渲染器 ,在类里面,
  • 覆盖 追加 方法
  • 在启动时注册自定义 layoutRenderer
    ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition("application", typeof(MyLayoutRenderer));

  • 目前,我从配置中读取值
    protected override void Append(StringBuilder builder, LogEventInfo logEvent)
    {
    var product = CommonMethods.ReadConfig("product");
    builder.Append(product);
    }

    如何动态设置值?

    最佳答案

    此答案包含一个 LayoutRenderer 示例,该示例允许您配置一个参数,该参数说明要读取的配置值。

    NLog config file to get configuration setting values from a web.config

    从什么@DaveHogan已发布,如果您编写自己的 LayoutRenderer 并将其命名为 MyLayoutRenderer 并想记录“产品”值,则可以将其配置如下:

    ${MyLayoutRenderer:product}

    关键是 [DefaultParameter]属性装饰 LayoutRenderer 的属性,指示从配置中读取哪个属性。

    question (来自我)展示了一个创建 NLog LayoutRenderer 的例子,它接受一个参数,然后使用该参数作为查找的键。 (问题的主题是 log4net,但我发布了一个我可以在 NLog 中做的事情的例子,并希望得到一个答案,显示如何在 log4net 中做类似的事情)。请注意,该示例适用于 NLog 1.1。在 NLog 2.0 中会略有不同。

    您可能还会找到 this link to the NLog code repository有用。

    关于c# - 将值传递给 NLog 自定义 LayoutRenderer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9496424/

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