nlog配置样例

<?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"
      internalLogLevel="Off"
      throwExceptions="false">

  <targets>

      <target name="log_file" xsi:type="File"
              fileName="${specialfolder:folder=MyDocuments}/Files/Logs/${date:format=yyyy}/test-${date:format=yyyyMMdd}"
              layout="#【操作时间】:${date} #【操作级别】:${level:uppercase=true} #${message}#"
              archiveFileName="${specialfolder:folder=MyDocuments}/test/Logs/archives/${date:format=yyyy}/test-${date:format=yyyyMMdd}-{#####}"
              archiveAboveSize="104857600"
              archiveNumbering="Sequence"
              maxArchiveFiles="50"
              archiveEvery="Day"
              concurrentWrites="true"
              keepFileOpen="false"
              encoding="utf-8"
              autoFlush="true" />

    </target>
   <!--使用可自定义的着色将日志消息写入控制台-->
    <target name="coloredConsole" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="false"
            layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}|${level:uppercase=true}|${message}|${callsite}|${all-event-properties}">
      <highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
      <highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
      <highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" />

      <!-- Trace级别 - 深灰色 -->
      <highlight-row condition="level == LogLevel.Trace" foregroundColor="DarkGray" />

      <!-- Debug级别 - 蓝色 -->
      <highlight-row condition="level == LogLevel.Debug" foregroundColor="Blue" />

      <!-- Info级别 - 绿色 -->
      <highlight-row condition="level == LogLevel.Info" foregroundColor="Green" />
    </target>
  </targets>

  <!--规则配置,final - 最终规则匹配后不处理任何规则-->
  <rules>

    <!-- 过滤Microsoft开头的日志,只记录Info及以上级别 -->
    <logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />

    <!-- 所有日志记录到文件(Info及以上级别) -->
    <logger name="*" minlevel="Info" writeTo="asyncFile" />

    <!-- Warn及以上级别输出到彩色控制台 -->
    <logger name="*" minlevel="Warn" writeTo="ColoredConsole" />
  </rules>
</nlog>
posted @ 2026-03-26 17:47  Timskt  阅读(12)  评论(0)    收藏  举报