【发布时间】:2018-03-17 13:59:50
【问题描述】:
我创建了 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"
throwExceptions="false"
throwConfigExceptions="true"> <!--make NLog complain, when something is wrong with the configuration-->
<targets>
<target name="logfile" xsi:type="File"
fileName="${basedir}/Logs/Log_${shortdate}.txt"
layout="[${longdate}] [${uppercase:${level}}] ${message} ${exception:format=tostring}"
/>
<target name="logconsole" xsi:type="ColoredConsole"
layout="[${longdate}] ${uppercase:${level}}: ${message} ${exception:format=tostring}"
/>
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logconsole" />
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
当我调用logger.Info("Hello World"); 时,我在控制台和文件中都得到了输出:
[2018-03-17 15:34:24.2843] INFO: Hello World
这很好。 现在在某些情况下我不想显示日期时间部分,我只想在控制台中显示它。
我将如何使用 NLog 做到这一点?
我想要的伪解决方案是:
logger.Info("Hello World", writeTo: "logconsole", layout: "[${uppercase:${level}}] ${message}");
我尝试添加一个新的taget
<target name="logconsole_simple" xsi:type="ColoredConsole"
layout="${uppercase:${level}}: ${message} ${exception:format=tostring}"/>
和新规则:
<logger name="logconsole_simple" level="Info" writeTo="logconsole_simple" />
然后这样称呼它:
logger.Log(LogEventInfo.Create(LogLevel.Info, "logconsole_simple", "simple message!"));
但它仍然显示日期时间部分并将其记录到文件中(我不想要)。 如何解决这个问题?
【问题讨论】: