You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.4 KiB
93 lines
3.4 KiB
<?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="Info"
|
|
internalLogToConsole="false"
|
|
throwConfigExceptions="false">
|
|
<!-- 使用Microsoft扩展配置 -->
|
|
<variable name="appName" value="${configsetting:item=Application.Name}" />
|
|
<variable name="environment" value="${configsetting:item=Application.Environment:default=Development}" />
|
|
|
|
<!-- 布局模板 -->
|
|
<variable name="jsonLayout" value='{
|
|
"time": "${longdate}",
|
|
"level": "${level}",
|
|
"logger": "${logger}",
|
|
"message": "${message}",
|
|
"exception": "${exception:format=ToString}",
|
|
"app": "${appName}",
|
|
"env": "${environment}",
|
|
"version": "${gdc:item=AppVersion}",
|
|
"machine": "${machinename}",
|
|
"user": "${environment:variable=USERNAME}",
|
|
"threadId": "${threadid}",
|
|
"activityId": "${activityid}"
|
|
}' />
|
|
|
|
<variable name="simpleLayout" value="${longdate} | ${level:uppercase=true} | ${logger:shortName=true} | ${message} ${exception:format=ToString}" />
|
|
|
|
<targets async="true">
|
|
<!--控制台目标(开发环境)-->
|
|
<target xsi:type="Console"
|
|
name="console"
|
|
layout="${simpleLayout}"
|
|
useErrorStream="false">
|
|
<highlight-row condition="level == LogLevel.Error" foregroundColor="Red"/>
|
|
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow"/>
|
|
</target>
|
|
|
|
<!--JSON文件目标(生产环境)-->
|
|
<target xsi:type="File"
|
|
name="jsonFile"
|
|
fileName="${specialfolder:folder=LocalApplicationData}/${appName}/logs/log-${shortdate}.json"
|
|
layout="${jsonLayout}"
|
|
encoding="utf-8"
|
|
archiveFileName="${specialfolder:folder=LocalApplicationData}/${appName}/logs/archives/log-{#####}.json"
|
|
archiveEvery="Day"
|
|
archiveNumbering="Rolling"
|
|
maxArchiveFiles="30"
|
|
archiveAboveSize="10485760"
|
|
keepFileOpen="false">
|
|
<header>{ "logs": [</header>
|
|
<footer>] }</footer>
|
|
<layout xsi:type="JsonLayout">
|
|
<attribute name="time" layout="${longdate}" />
|
|
<attribute name="level" layout="${level:lowercase=true}" />
|
|
<attribute name="logger" layout="${logger}" />
|
|
<attribute name="method" layout="${event-properties:item=MethodName}" />
|
|
<attribute name="message" layout="${message}" />
|
|
<attribute name="exception" layout="${exception:format=ToString}" escapeUnicode="false" />
|
|
<attribute name="properties">
|
|
<layout type="JsonLayout" includeAllProperties="true" excludeProperties="time,level,logger,message,exception" />
|
|
</attribute>
|
|
</layout>
|
|
</target>
|
|
|
|
<!--调试窗口-->
|
|
<target xsi:type="Debugger"
|
|
name="debugger"
|
|
layout="${simpleLayout}" />
|
|
|
|
<!--内存目标(用于UI显示)-->
|
|
<target xsi:type="Memory"
|
|
name="memory"
|
|
layout="${simpleLayout}"
|
|
maxLogsCount="1000" />
|
|
|
|
</targets>
|
|
|
|
<rules>
|
|
<!-- 开发环境规则 -->
|
|
<logger name="*" minlevel="Debug" writeTo="console,debugger,memory" if="${configsetting:item=Application.Environment:default=Development} == 'Development'" />
|
|
|
|
<!-- 生产环境规则 -->
|
|
<logger name="*" minlevel="Info" writeTo="jsonFile,memory" if="${configsetting:item=Application.Environment:default=Development} != 'Development'" />
|
|
|
|
<!-- 错误日志单独处理 -->
|
|
<logger name="*" minlevel="Error" writeTo="jsonFile" final="true" />
|
|
|
|
<logger name="*" minlevel="Warn" writeTo="jsonFile,console" final="true" />
|
|
</rules>
|
|
|
|
</nlog>
|