gpt4 book ai didi

c# - 将 NLog 与 NServiceBus 3 一起使用

转载 作者:太空狗 更新时间:2023-10-29 23:33:31 25 4
gpt4 key购买 nike

是否可以让 NServiceBus3 登录到 NLog?如果是的话,有没有人有任何关于如何做到这一点的例子?

编辑:解决方案

如果有人对此感兴趣,这是我对 appender 的实现,一些 log4net 级别可能没有映射到合理的 NLog 区域,但它至少应该给其他人一个起点

// Setup a custom formatter like the one below to get nice exception logging
//<target name="YourLogFile" xsi:type="File" fileName="${basedir}/../logs/YourLogFile.log" archiveFileName="${basedir}/../logs/archives/YourLogFile.{#####}.log"
//layout="${longdate}|${level:uppercase=true}|${logger}|${message}${onexception:|EXCEPTION OCCURRED\:${exception:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}}"
//archiveEvery="Day" archiveNumbering="Sequence" maxArchiveFiles="14" />
public class NlogAppenderForLog4Net : AppenderSkeleton
{
protected override void Append(log4net.Core.LoggingEvent loggingEvent)
{
var Logger = LogManager.GetLogger(loggingEvent.LoggerName);


if (loggingEvent.Level == Level.Fatal)
{
if (loggingEvent.ExceptionObject != null)
{
Logger.FatalException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else
{
Logger.Fatal(loggingEvent.RenderedMessage);
}
}
//if its an error
else if(loggingEvent.Level == Level.Error ||
loggingEvent.Level == Level.Critical ||
loggingEvent.Level == Level.Emergency)
{
if(loggingEvent.ExceptionObject != null)
{
Logger.ErrorException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else{
Logger.Error(loggingEvent.RenderedMessage);
}
}
//if its a warning
else if (loggingEvent.Level == Level.Warn)
{
if (loggingEvent.ExceptionObject != null)
{
Logger.WarnException(loggingEvent.RenderedMessage, loggingEvent.ExceptionObject);
}
else
{
Logger.Warn(loggingEvent.RenderedMessage);
}
}
//if its info
else if (loggingEvent.Level == Level.Info || loggingEvent.Level == Level.Notice)
{
Logger.Info(loggingEvent.RenderedMessage);
}
else
{
Logger.Trace(loggingEvent.RenderedMessage);
}
}
}

下面是我如何在 NServiceBus 中连接它

.Log4Net<NlogAppenderForLog4Net>(a => { })

最佳答案

有 NLogAppender 的现有实现,您可以使用...例如,log4net.NLogAppender 可以在 GitHub 找到: 并从 NuGet 安装。

关于c# - 将 NLog 与 NServiceBus 3 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661453/

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