首页
看点啥
插画图片
首页 科技看点 .NET4.7使用NLog记录日志到数据库表实用指南

.NET4.7使用NLog记录日志到数据库表实用指南

2026-09-15 0

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“.NET4.7采用NLog记录日志到数据库表”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

1. 首先安装必要的NuGet包

在项目里安装以下NuGet包:

  • NLog
  • NLog.Config (可选,用来自动生成设置文件)

相应的数据库提供程序(如System.Data.SqlClient for SQL Server)

Install-Package NLog
Install-Package NLog.Config
Install-Package System.Data.SqlClient

2. 设置NLog.config文件

在项目里添加或修改NLog.config文件:


      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\nlog-internal.log">
 
  
    
  

 
  
    
                xsi:type="Database"
            connectionString="YourConnectionStringHere"
            commandText="INSERT INTO LoginLogs(ID, LoginName, Message, CreateTime) VALUES(@ID, @LoginName, @Message, @CreateTime)">
      
      
      
      
      
    

  

 
  
    
  

若需采用异步记录日志的话,设置如下所示:


      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="Info"
      internalLogFile="c:\temp\nlog-internal.log">
 
  
    
  

 
  
    
                queueLimit="10000"
            overflowAction="Discard">
                    connectionString="YourConnectionStringHere"
              commandText="INSERT INTO LoginLogs(ID, LoginName, Message, CreateTime) VALUES(@ID, @LoginName, @Message, @CreateTime)">
        
        
        
        
        
      

    

  

 
  
    
  

3. 新建数据库表

确保你的数据库中有对应的表结构:

CREATE TABLE LoginLogs (
    ID UNIQUEIDENTIFIER PRIMARY KEY,
    LoginName NVARCHAR(100),
    Message NVARCHAR(MAX),
    CreateTime DATETIME
)

4. 在代码中采用NLog记录登录日志

using NLog;
 
public class LoginService
{
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
 
    public void LogLoginAttempt(string loginName, string message, bool isSuccess)
    {
        var logEvent = new LogEventInfo
        {
            Level = isSuccess ? LogLevel.Info : LogLevel.Warn,
            Message = message
        };
        
        logEvent.Properties["LoginName"] = loginName;
        
        Logger.Log(logEvent);
    }
}

5. 采用示例

var loginService = new LoginService();
 
// 成功登录
loginService.LogLoginAttempt("john.doe", "User logged in successfully", true);
 
// 失败登录
loginService.LogLoginAttempt("john.doe", "Invalid password", false);

到此这篇关于.NET4.7采用NLog记录日志到数据库表的文章就介绍到这了,更多相关.NET NLog记录日志到数据库表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!

您可能感兴趣的文章:
  • .Net采用日志框架NLog
  • .NET日志框架Nlog采用介绍
  • .Net Core 采用NLog记录日志到文件和数据库的操作方法
  • Asp.Net Core用NLog记录日志操作方法
  • 详解.Net core2.0日志组件Log4net、Nlog轻松性能测试
  • ASP.NET Core开发教程之Logging借助NLog写日志文件
喜欢(0)

上一篇

.net8创建tcp服务接收数据通过websocket广播的实现方式代码实用指南

.net8创建tcp服务接收数据通过websocket广播的实现方式代码实用指南

下一篇

.NET 查找 DLL 路径顺序的问题小结实用指南

猜你喜欢