代码之家  ›  专栏  ›  技术社区  ›  MarredCheese Lionia Vasilev

nlog跟踪目标仅对跟踪和调试级别有效,不适用于信息、警告、错误或致命级别。

  •  2
  • MarredCheese Lionia Vasilev  · 技术社区  · 7 年前

    当我使用nlog记录到跟踪目标类型时,只有当级别为 Trace Debug .如果是的话 Info Warn Error Fatal

    using System;
    
    namespace TraceLoggingTest
    {
        class Program
        {
            private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
    
            static void Main(string[] args)
            {
                logger.Trace("Hello Trace");
                logger.Debug("Hello Debug");
                logger.Info("Hello Info");
                logger.Warn("Hello Warn");
                logger.Error("Hello Error");
                logger.Fatal("Hello Fatal");
    
                Console.ReadLine();
                NLog.LogManager.Shutdown();
            }
        }
    }
    

    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"
          xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
          autoReload="true"
          throwExceptions="false"
          internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">
    
      <targets>
        <target name="logTrace" xsi:type="Trace" layout="${message}" />
      </targets>
    
      <rules>
        <logger name="*" minlevel="Trace" writeTo="logTrace" />
      </rules>
    </nlog>
    

    Hello Trace
    Hello Debug
    Hello Info
    Hello Warn
    Hello Error
    Hello Fatal
    

    Hello Trace
    Hello Debug
    TraceLoggingTest.exe Information: 0 : Hello Info
    TraceLoggingTest.exe Warning: 0 : Hello Warn
    TraceLoggingTest.exe Error: 0 : Hello Error
    ---- DEBUG ASSERTION FAILED ----
    ---- Assert Short Message ----
    Hello Fatal
    ---- Assert Long Message ----
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   MarredCheese Lionia Vasilev    7 年前

    NLOG 4.5中介绍了一种对预处理问题的修复方法。您需要添加 rawWrite="true"

    更改:

    <target name="logTrace" xsi:type="Trace" layout="${message}" />
    

    <target name="logTrace" xsi:type="Trace" layout="${message}" rawWrite="true" />
    

    https://github.com/NLog/NLog/wiki/Trace-target

    布局选项

    Trace.WriteLine Default: False

    推荐文章