修复日志写入数据库失败问题
This commit is contained in:
@@ -1,50 +0,0 @@
|
|||||||
using SqlSugar;
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace DMS.Infrastructure.Entities;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 数据库实体:对应数据库中的 Logs 表,用于存储应用程序日志。
|
|
||||||
/// </summary>
|
|
||||||
public class DbNlog
|
|
||||||
{
|
|
||||||
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
|
||||||
public long Id { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 日志记录的时间戳。
|
|
||||||
/// </summary>
|
|
||||||
public DateTime Logged { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 日志级别 (e.g., "Info", "Warn", "Error", "Debug")。
|
|
||||||
/// </summary>
|
|
||||||
public string Level { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 日志消息主体。
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(Length = -1)] // 映射为NVARCHAR(MAX)或类似类型
|
|
||||||
public string Message { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 异常信息,包括堆栈跟踪。如果无异常则为null。
|
|
||||||
/// </summary>
|
|
||||||
[SugarColumn(IsNullable = true, Length = -1)]
|
|
||||||
public string Exception { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 记录日志的调用点信息 (文件路径:行号)。
|
|
||||||
/// </summary>
|
|
||||||
public string CallSite { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 记录日志的方法名。
|
|
||||||
/// </summary>
|
|
||||||
public string MethodName { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// (用于聚合) 此条日志在指定时间窗口内被触发的总次数。默认为1。
|
|
||||||
/// </summary>
|
|
||||||
public int AggregatedCount { get; set; } = 1;
|
|
||||||
}
|
|
||||||
@@ -34,7 +34,6 @@ public class InitializeRepository : IInitializeRepository
|
|||||||
public void InitializeTables()
|
public void InitializeTables()
|
||||||
{
|
{
|
||||||
_db.DbMaintenance.CreateDatabase(); // 创建数据库(如果不存在)
|
_db.DbMaintenance.CreateDatabase(); // 创建数据库(如果不存在)
|
||||||
_db.CodeFirst.InitTables<DbNlog>();
|
|
||||||
_db.CodeFirst.InitTables<DbDevice>();
|
_db.CodeFirst.InitTables<DbDevice>();
|
||||||
_db.CodeFirst.InitTables<DbVariableTable>();
|
_db.CodeFirst.InitTables<DbVariableTable>();
|
||||||
_db.CodeFirst.InitTables<DbVariable>();
|
_db.CodeFirst.InitTables<DbVariable>();
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<nlog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
|
||||||
autoReload="true"
|
autoReload="true"
|
||||||
internalLogLevel="Info"
|
internalLogLevel="Trace"
|
||||||
internalLogFile="internal-nlog.txt">
|
internalLogFile="logs/internal-nlog.txt">
|
||||||
|
|
||||||
<targets>
|
<targets>
|
||||||
<!-- 文件日志 -->
|
<!-- 文件日志 -->
|
||||||
@@ -20,15 +20,30 @@
|
|||||||
<target name="logconsole"
|
<target name="logconsole"
|
||||||
xsi:type="Console"
|
xsi:type="Console"
|
||||||
layout="${date:format=HH\:mm\:ss} ${level} ${threadid} ${message}${exception:format=tostring}"/>
|
layout="${date:format=HH\:mm\:ss} ${level} ${threadid} ${message}${exception:format=tostring}"/>
|
||||||
<!-- SQL Server 目标 -->
|
|
||||||
<!-- 异步写入日志到数据库 -->
|
<!-- 数据库日志 -->
|
||||||
|
|
||||||
<target name="database"
|
<target name="database"
|
||||||
xsi:type="Database"
|
xsi:type="Database"
|
||||||
dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
|
dbProvider="MySql.Data.MySqlClient.MySqlConnection, MySql.Data"
|
||||||
connectionString="server=127.0.0.1;port=3306;user=root;password=Pgw15221236646; database=dms_test; ">
|
connectionString="server=127.0.0.1;port=3306;user=root;password=Pgw15221236646; database=dms_test; ">
|
||||||
<commandText>
|
<commandText>
|
||||||
INSERT INTO dbnlog (
|
CREATE TABLE IF NOT EXISTS nlog (
|
||||||
|
ID INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
|
LogTime DATETIME,
|
||||||
|
Level VARCHAR(50),
|
||||||
|
ThreadID INT,
|
||||||
|
ThreadName VARCHAR(100),
|
||||||
|
Callsite VARCHAR(300),
|
||||||
|
CallsiteLineNumber INT,
|
||||||
|
Message TEXT,
|
||||||
|
Logger VARCHAR(300),
|
||||||
|
Exception TEXT,
|
||||||
|
CallerFilePath VARCHAR(300),
|
||||||
|
CallerLineNumber INT,
|
||||||
|
CallerMember VARCHAR(100)
|
||||||
|
);
|
||||||
|
|
||||||
|
INSERT INTO nlog (
|
||||||
LogTime, Level, ThreadID,ThreadName,Callsite,CallsiteLineNumber,Message,
|
LogTime, Level, ThreadID,ThreadName,Callsite,CallsiteLineNumber,Message,
|
||||||
Logger, Exception, CallerFilePath, CallerLineNumber,CallerMember
|
Logger, Exception, CallerFilePath, CallerLineNumber,CallerMember
|
||||||
) VALUES (
|
) VALUES (
|
||||||
|
|||||||
Reference in New Issue
Block a user