这可能是一个非常愚蠢的问题但我们走了。我在我的Web应用程序中有以下NLog.config,但是对话框打开并显示信息的时间/时间,或者我是否需要启动它并导航到特定的目录或其他内容?
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.netfx35.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target xsi:type="ColoredConsole"
name="Debug"
layout="${message} ${exception}">
<highlight-row backgroundColor="Black"
foregroundColor="DarkCyan"
condition="true"/>
</target>
</targets>
<rules>
<logger name="Raven.Client.*" writeTo="Debug"/>
</rules>
</nlog>
答案 0 :(得分:7)
实际上,您可以使用以下代码与非控制台程序并行实例化控制台:
static public class LogConsole
{
static public void Instantiate()
{
AllocConsole();
}
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
static private extern bool AllocConsole();
}
答案 1 :(得分:3)
NLog不会打开一个会转储其消息的对话框,你基本上会丢失它记录的所有数据。至少这是我的理解; Console和ColoredConsole仅对控制台应用程序有用。您最好的选择是将输出转换为文件。使用这样的东西:
<targets>
<target name="file" xsi:type="File" fileName="${basedir}/log.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="file" />
</rules>
这将在您的应用程序的基本目录中创建一个名为log.txt的文本文件,它将写入所有具有最低级别Info(基本上所有内容)的消息。哦,顺便说一句,你可以同时使用多个目标和规则;看看here了解更多信息。
答案 2 :(得分:-3)
您应该在记录器规则部分(您忘记了)中包含minLevel
。这会通知记录器有关应记录的最低级别的消息。要明确:
<rules>
<logger name="Raven.Client.*" minlevel="Info" writeTo="Debug" />
</rules>