c# - 自定义 NLog Appender

标签 c# log4net nlog appender

我正在尝试编写用于在 NLog 中登录的自定义附加程序。我看到了 log4net 的一些示例,其中应该编写从抽象类 AppenderSkeleton 继承的 appender。谁能在 NLog 中命名模拟类?

最佳答案

log4net 附加程序的 NLog 模拟将成为目标。要创建自己的目标,您必须继承自 NLog.Targets.TargetWithLayout。您还应该使用属性 TargetAttribute 标记您的目标类:

[Target("Foo")]
public class FooTarget : TargetWithLayout
{
    protected override void Write(LogEventInfo logEvent)
    {            
        Console.WriteLine(logEvent.Message);
    }
}

下一步是将您的类定义到 NLog 扩展的程序集添加:

<nlog>
  <extensions>
    <add assembly="MyBarAssembly"/>
  </extensions>
  <targets>
     ...

最后一步 - 注册你的目标(NLog 将通过 TargetAttribute 在类型市场的扩展中搜索)

<target name="foo" type="Foo"/>

关于c# - 自定义 NLog Appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154263/

相关文章:

c# - 通过继承类中的声明获取当前类

powershell - 在 PowerShell 中使用 NLog ${callsite} 和 ${callsite-linenumber}

configuration - 使用配置文件部分覆盖/合并标准编程配置

c# - 为什么我的异步回调在同一个线程中运行?

c# - 如何根据内容拆分字符串?

c# - 在datetimepicker已经(保存)写入记录后,如何在sql base中删除,重置或写入 "null"值?

c# log4net 在特定条件下将条目存储在内存和电子邮件中

asp.net - ASP.NET 中的 log4net 唯一请求 ID

c# - SQLite in 10 UWP App Assertion Error (p->iForeGuard==(int)FOREGUARD);

c# - .NET5辅助服务模板的NLog设置