Files

97 lines
5.0 KiB
XML

<?xml version="1.0" encoding="utf-8" ?>
<!--NLog日志配置-->
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true"
internalLogLevel="Warn"
internalLogFile="c:/log/nlog.log">
<!--==========变量定义============-->
<!--应用程序名称-->
<variable name="applicationName" value="application"/>
<!--日志输出目录-->
<variable name="logPath" value="c:/log/${applicationName}/${level}/${shortdate}"/>
<!--===========输出目标===========-->
<!--异步执行-->
<targets async="true">
<!--写入文件,用于开发阶段排错-->
<target name="file" xsi:type="File" fileName="${logPath}/${level}.log" layout="${message}" />
<!--WebApi调试日志-->
<target name="apiLog" xsi:type="File" fileName="${logPath}/api-trace.log" layout="${message}" />
<!--Ef调试日志-->
<target name="efLog" xsi:type="File" fileName="${logPath}/ef.log" layout="${message}" />
<!--Sql查询调试日志-->
<target name="queryLog" xsi:type="File" fileName="${logPath}/sql-query.log" layout="${message}" />
<!--Ui调试日志-->
<target name="uiLog" xsi:type="File" fileName="${logPath}/ui.log" layout="${message}" />
<!--写入SqlServer数据库-->
<target xsi:type="Database" name="sqlserver" connectionString="server=.\sql2014;database=Log;uid=sa;pwd=sa">
<commandText>
Insert Into [Logs].[Log](
[TraceId],[BusinessId],[LogName],[Level],[OperationTime],[Duration],[Url],
[Tenant],[Application],[Module],[Class],[Method],[Params],
[Caption],[Content],[Sql],[SqlParams],[ErrorCode],[ErrorMessage],[StackTrace],
[UserId],[Operator],[Role],[Ip],[Host],[ThreadId],[Browser]
)
Values(
@TraceId,@BusinessId,@LogName,@Level,@OperationTime,@Duration,@Url,
@Tenant,@Application,@Module,@Class,@Method,@Params,
@Caption,@Content,@Sql,@SqlParams,@ErrorCode,@ErrorMessage,@StackTrace,
@UserId,@Operator,@Role,@Ip,@Host,@ThreadId,@Browser
)
</commandText>
<parameter name="@TraceId" layout="${log:Name=TraceId}" />
<parameter name="@BusinessId" layout="${log:Name=BusinessId}" />
<parameter name="@LogName" layout="${log:Name=LogName}" />
<parameter name="@Level" layout="${log:Name=Level}" />
<parameter name="@OperationTime" layout="${log:Name=OperationTime}" />
<parameter name="@Duration" layout="${log:Name=Duration}" />
<parameter name="@Url" layout="${log:Name=Url}" />
<parameter name="@Tenant" layout="${log:Name=Tenant}" />
<parameter name="@Application" layout="${log:Name=Application}" />
<parameter name="@Module" layout="${log:Name=Module}" />
<parameter name="@Class" layout="${log:Name=Class}" />
<parameter name="@Method" layout="${log:Name=Method}" />
<parameter name="@Params" layout="${log:Name=Params}" />
<parameter name="@Caption" layout="${log:Name=Caption}" />
<parameter name="@Content" layout="${log:Name=Content}" />
<parameter name="@Sql" layout="${log:Name=Sql}" />
<parameter name="@SqlParams" layout="${log:Name=SqlParams}" />
<parameter name="@ErrorCode" layout="${log:Name=ErrorCode}" />
<parameter name="@ErrorMessage" layout="${log:Name=ErrorMessage}" />
<parameter name="@StackTrace" layout="${log:Name=StackTrace}" />
<parameter name="@UserId" layout="${log:Name=UserId}" />
<parameter name="@Operator" layout="${log:Name=Operator}" />
<parameter name="@Role" layout="${log:Name=Role}" />
<parameter name="@Ip" layout="${log:Name=Ip}" />
<parameter name="@Host" layout="${log:Name=Host}" />
<parameter name="@ThreadId" layout="${log:Name=ThreadId}" />
<parameter name="@Browser" layout="${log:Name=Browser}" />
</target>
</targets>
<!--=============规则=============-->
<rules>
<!-- WebApi调试日志 -->
<logger minlevel="Trace" name="ApiTraceLog" writeTo="apiLog"/>
<!-- Ef调试日志 -->
<logger minlevel="Trace" name="EfTraceLog" writeTo="efLog"/>
<!-- Sql查询调试日志 -->
<logger minlevel="Trace" name="SqlQueryLog" writeTo="queryLog"/>
<!-- Ui调试日志 -->
<logger minlevel="Trace" name="UiTraceLog" writeTo="uiLog"/>
<!-- 写入文件,日志级别:Trace,Debug,Info,Warn,Error,Fatal,Off -->
<logger minlevel="Trace" name="*" writeTo="file" >
<!--<filters>
--><!-- 排除Api日志 --><!--
<when condition="equals(logger,'ApiTraceLog')" action="Ignore" />
--><!-- 排除Ef日志 --><!--
<when condition="equals(logger,'EfTraceLog')" action="Ignore" />
--><!-- 排除Sql查询日志 --><!--
<when condition="equals(logger,'SqlQueryLog')" action="Ignore" />
--><!-- 排除Ui日志 --><!--
<when condition="equals(logger,'UiTraceLog')" action="Ignore" />
</filters>-->
</logger>
<!-- 写入SqlServer数据库,日志级别:Trace,Debug,Info,Warn,Error,Fatal,Off -->
<logger minlevel="Trace" name="*" writeTo="sqlserver" />
</rules>
</nlog>