gpt4 book ai didi

c# - NLog:如何控制来自 LogEventInfo 对象的消息格式?

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

我是 NLog 的新手,我一直在使用 LogEventInfo 对象,因为我认为我的应用程序中需要它们。我使用纯文本字符串创建了一个 LogEventInfo 对象,然后调用了 Logger.Debug(myEventInfoObject),使用一个 FileAppender 设置为写入 ${message}。在我希望看到我的文本字符串的地方,我看到的却是记录器名称、消息级别、消息和序列 ID。我发现调用 myEventInfoObject.ToString() 时得到的是扩展字符串。当 ${message} 来自 LogEventInfo 对象时,如何控制显示的内容?

这是我的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
throwExceptions="true">
<targets>
<target name="file" xsi:type="File" layout="${longdate} ${logger} ${message}" fileName="${basedir}/nlog_sample_file.txt" />
</targets>

<rules>
<logger name="*" minlevel="Debug" writeTo="file" />
</rules>
</nlog>

这是我生成日志的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NLog;

namespace NLogSample
{
class Program
{
static void Main(string[] args)
{
try
{
Logger logger = LogManager.GetCurrentClassLogger();
LogEventInfo theEvent = new LogEventInfo(LogLevel.Debug, "", "This message from the LogInfoEvent will not be used.");
theEvent.Properties["Message"] = "This message from the LogInfoEvent Message property will be used.";

logger.Debug(theEvent);
logger.Debug("Does the sequence ID show up in this message?");

string formattedMessage = theEvent.FormattedMessage;
string eventString = theEvent.ToString();
}
catch (Exception ex)
{
int a = 1;
}
}
}
}

最后,这是消息的示例:

2014-10-08 10:14:13.5525 NLogSample.Program 日志事件:Logger='' Level=Debug Message='不会使用来自 LogInfoEvent 的这条消息。'序列ID=2

我在 Win7 Pro 计算机上使用 Visual Studio 2012。

非常感谢!

罗布

最佳答案

我必须这样做

    class MyLogEventInfo : LogEventInfo {
public override string ToString() {
return base.FormattedMessage;
}
}

...

    var theEvent = new MyLogEventInfo();
theEvent.Message = "This message from the LogInfoEvent will not be used.";
logger.Debug(theEvent);

关于c# - NLog:如何控制来自 LogEventInfo 对象的消息格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26259494/

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