修复日志写入数据库失败问题
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()
|
||||
{
|
||||
_db.DbMaintenance.CreateDatabase(); // 创建数据库(如果不存在)
|
||||
_db.CodeFirst.InitTables<DbNlog>();
|
||||
_db.CodeFirst.InitTables<DbDevice>();
|
||||
_db.CodeFirst.InitTables<DbVariableTable>();
|
||||
_db.CodeFirst.InitTables<DbVariable>();
|
||||
|
||||
@@ -2,8 +2,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">
|
||||
internalLogLevel="Trace"
|
||||
internalLogFile="logs/internal-nlog.txt">
|
||||
|
||||
<targets>
|
||||
<!-- 文件日志 -->
|
||||
@@ -20,15 +20,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=dms_test; ">
|
||||
<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,
|
||||
Logger, Exception, CallerFilePath, CallerLineNumber,CallerMember
|
||||
) VALUES (
|
||||
|
||||
Reference in New Issue
Block a user