我有一些我在工作中写过的控制台应用程序。我想把NLog带进去,但我遇到了麻烦。 当我检查“记录器”时对象,我在其中看到' Factory'属性,配置有target = 0,loggingrules = 0,一切空白或未设置。 所以,它没有做任何事情..也没有删除内部日志文件......我试过nLog.config NLog.config和nlog.config ......无济于事。试过NLog的第3和第4版......
为什么不拿起配置?
我有:
这是NLog.config:
<?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"
autoReload="true"
throwConfigExceptions="true"
throwExceptions="true"
internalLogLevel="Trace"
internalLogFile="c:\temp\NlogInternal.log"
internalLogToConsole="true"
internalLogToConsoleError="true"
internalLogToTrace="true">
<targets>
<target xsi:type="Console" name="debugConsole" layout="${message} "/>
<target xsi:type="File" name="debugFile" createDirs="true" fileName="c:\temp\testlog.log" layout="${longdate} ${uppercase:${level}} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="debugConsole"/>
<logger name="*" minlevel="Trace" writeTo="debugFile"/>
</rules>
</nlog>
最后(这没有错误,但由于配置为空,所以没有输出):
private static Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("ConsoleApp test log...");
答案 0 :(得分:3)
您的app.config是否有NLog configSection? 像这样:
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
</configSections>
<nlog>
</nlog>
</configuration>
答案 1 :(得分:1)
如果即使internalLogger无法正常工作,您也可以通过设置来调试问题
InternalLogger.LogWriter
e.g。
// enable internal logging to a custom TextWriter
InternalLogger.LogWriter = new StringWriter(); //e.g. TextWriter writer = File.CreateText("C:\\perl.txt")
答案 2 :(得分:0)
我遇到了同样的问题。进行更改时,将文件名路径“ c:\ temp \ testlog.log”更改为 “ c:/temp/testlog.log”,那么它将起作用。希望下面的内容能帮助您解决问题。
<targets>
<target xsi:type="Console" name="debugConsole" layout="${message} "/>
<target xsi:type="File" name="debugFile" createDirs="true"
fileName="c:/temp/testlog.log" layout="${longdate} ${uppercase:${level}}
${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="debugConsole"/>
<logger name="*" minlevel="Trace" writeTo="debugFile"/>
</rules>