NLog 在 C# 中获取日志消息

Dav*_*vid 2 c# nlog

我最近开始使用 NLog,我想在将日志保存到文件中之前在我的应用程序中显示日志。

我怎样才能得到以下内容?

string message = logger.getLog() <---- This is what I need
Run Code Online (Sandbox Code Playgroud)

Jul*_*ian 6

在这种情况下,最好(IMO)使用内存目标。(文档内存目标)

配置:

<targets>  
    <target name="target1" xsi:type="Memory" layout="${message}"/>  
    <target name="target2" xsi:type="File" fileName="C:\log\NLog.log" layout="${longdate}|${message}"/>  
</targets>  

<rules>  
  <logger name="*" minlevel="Error" writeTo="target1,target2" />  
</rules> 
Run Code Online (Sandbox Code Playgroud)

日志消息:

 LogManager.GetLogger("logger1").Info("my log message");
Run Code Online (Sandbox Code Playgroud)

检索:(另请参阅:MemoryTarget 类 - API 文档

var target = LogManager.Configuration.FindTargetByName<MemoryTarget>("target1");
IList<string> logs = target.Logs; 
// show logs etc.
// delete if not needed any more: target.Logs.Clear()
Run Code Online (Sandbox Code Playgroud)