添加Nlog服务

This commit is contained in:
2025-09-04 14:46:50 +08:00
parent bc8bc58d9b
commit 653a1d8749
9 changed files with 399 additions and 38 deletions

View File

@@ -1,63 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
autoReload="true"
internalLogLevel="Info"
internalLogFile="internal-nlog.txt">
<targets>
<!-- 文件日志 -->
<target name="logfile"
xsi:type="File"
fileName="logs/${shortdate}.log"
layout="${longdate} ThreadID=${threadid} ${level:uppercase=true} ${logger} ${mdlc:CallerFilePath} ${mdlc:CallerLineNumber:whenEmpty=0} ${mdlc:CallerMember} ${message} ${exception:format=tostring}"
archiveFileName="logs/archives/{#}.log"
archiveEvery="Day"
archiveNumbering="Rolling"
maxArchiveFiles="30"/>
<!-- 控制台日志 -->
<target name="logconsole"
xsi:type="Console"
layout="${date:format=HH\:mm\:ss} ${level} ${threadid} ${message}${exception:format=tostring}"/>
<!-- SQL Server 目标 -->
<!-- 异步写入日志到数据库 -->
<target name="database"
xsi:type="Database"
dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
connectionString="server=127.0.0.1;port=3306;user=root;password=Pgw15221236646; database=pmswpf; ">
<commandText>
INSERT INTO nlog (
LogTime, Level, ThreadID,ThreadName,Callsite,CallsiteLineNumber,Message,
Logger, Exception, CallerFilePath, CallerLineNumber,CallerMember
) VALUES (
@LogTime, @Level,@ThreadID,@ThreadName,@Callsite,@CallsiteLineNumber,@Message,
@Logger, @Exception, @CallerFilePath, @CallerLineNumber,@CallerMember
)
</commandText>
<!-- 参数映射 -->
<parameter name="@LogTime" layout="${date:format=yyyy-MM-dd HH\:mm\:ss}"/>
<parameter name="@Level" layout="${level}"/>
<parameter name="@ThreadID" layout="${threadid}" dbType="Int32"/>
<parameter name="@ThreadName" layout="${threadname}"/>
<parameter name="@Message" layout="${message}"/>
<parameter name="@Callsite" layout="${callsite}"/>
<parameter name="@Logger" layout="${logger}"/>
<parameter name="@Exception" layout="${exception:format=ToString}"/>
<parameter name="@CallsiteLineNumber" layout="${callsite-linenumber:whenEmpty=0}"/>
<parameter name="@CallerFilePath" layout="${mdlc:CallerFilePath}"/>
<parameter name="@CallerLineNumber" layout="${mdlc:CallerLineNumber:whenEmpty=0}"/>
<parameter name="@CallerMember" layout="${mdlc:CallerMember}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logconsole"/>
<logger name="*" minlevel="Info" writeTo="logfile"/>
<!-- 路由日志到数据库 -->
<logger name="*" minlevel="Info" writeTo="database"/>
</rules>
</nlog>

View File

@@ -6,16 +6,9 @@
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<None Update="Configurations\nlog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.5" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="NLog" Version="6.0.0" />
<PackageReference Include="NLog.Database" Version="6.0.0" />