Nlog 配置文件
Nlog 配置文件
配置nlog同时写入SQL server数据库和本地文件
<?xml version="1.0" encoding="utf-8" ?><nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"throwExceptions="false"internalLogLevel="Warn"internalLogFile="logs/internal-nlog.log"><!-- 引入必要的扩展程序集 --><extensions><addassembly="NLog.Web.AspNetCore"/><addassembly="NLog.Database"/></extensions><targets><!-- 1. 配置本地文件日志 --><targetname="asyncFile"xsi:type="AsyncWrapper"queueLimit="5000"overflowAction="Block"><targetxsi:type="File"name="file"fileName="${basedir}/logs/${shortdate}.log"layout="${longdate}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}"keepFileOpen="false"archiveEvery="Day"maxArchiveFiles="30"/></target><!-- 2. 配置数据库日志 (以 SQL Server 为例,其他数据库只需修改 dbProvider 和连接字符串) --><targetname="database"xsi:type="Database"dbProvider="Microsoft.Data.SqlClient.SqlConnection, Microsoft.Data.SqlClient"connectionString="Data Source=.;Initial Catalog=你的数据库名;User ID=账号;Password=密码;Encrypt=True;TrustServerCertificate=True;"commandText="INSERT INTO dbo.NLog ([Application], [Logged], [Level], [Message], [Logger], [CallSite], [Exception]) VALUES (@Application, @Logged, @Level, @Message, @Logger, @CallSite, @Exception);"><parametername="@Application"layout="MyApp"/><parametername="@Logged"layout="${date}"/><parametername="@Level"layout="${level}"/><parametername="@Message"layout="${message}"/><parametername="@Logger"layout="${logger}"/><parametername="@CallSite"layout="${callsite:filename=true}"/><parametername="@Exception"layout="${exception:tostring}"/></target></targets><rules><!-- 3. 路由规则:将所有 Info 及以上级别的日志同时写入文件(file)和数据库(database) --><loggername="*"minlevel="Info"writeTo="asyncFile,database"/><!-- 可选:屏蔽微软框架的冗余日志 --><loggername="Microsoft.*"maxlevel="Info"final="true"/></rules></nlog>数据库建表
CREATETABLE[dbo].[NLog]([Id][bigint]IDENTITY(1,1)NOTNULL,[Application][nvarchar](50)NOTNULL,[Logged][datetime]NOTNULL,[Level][nvarchar](50)NOTNULL,[Message][nvarchar](max)NOTNULL,[Logger][nvarchar](250)NULL,[CallSite][nvarchar](max)NULL,[Exception][nvarchar](max)NULL)注意:必须安装包 Microsoft.Data.SqlClient
