.NET 4.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文件:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"internalLogLevel="Info"internalLogFile="c:\temp\nlog-internal.log"><extensions><add assembly="NLog" /></extensions><targets><!-- 数据库目标 --><target name="database" xsi:type="Database"connectionString="YourConnectionStringHere"commandText="INSERT INTO LoginLogs(ID, LoginName, Message, CreateTime) VALUES(@ID, @LoginName, @Message, @CreateTime)"><parameter name="@ID" layout="${guid}" /><parameter name="@LoginName" layout="${event-properties:item=LoginName}" /><parameter name="@Message" layout="${message}" /><parameter name="@CreateTime" layout="${date:format=yyyy-MM-dd HH\:mm\:ss}" /></target></targets><rules><logger name="*" minlevel="Info" writeTo="database" /></rules>
</nlog>

 如果需要使用异步记录日志的话,配置如下:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"autoReload="true"internalLogLevel="Info"internalLogFile="c:\temp\nlog-internal.log"><extensions><add assembly="NLog" /></extensions><targets async="true"> <!-- 启用全局异步 --><!-- 异步数据库目标 --><target name="asyncDatabase" xsi:type="AsyncWrapper" queueLimit="10000" overflowAction="Discard"><target xsi:type="Database"connectionString="YourConnectionStringHere"commandText="INSERT INTO LoginLogs(ID, LoginName, Message, CreateTime) VALUES(@ID, @LoginName, @Message, @CreateTime)"><parameter name="@ID" layout="${guid}" /><parameter name="@LoginName" layout="${event-properties:item=LoginName}" /><parameter name="@Message" layout="${message}" /><parameter name="@CreateTime" layout="${date:format=yyyy-MM-dd HH\:mm\:ss}" /></target></target></targets><rules><logger name="*" minlevel="Info" writeTo="asyncDatabase" /></rules>
</nlog>

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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/86075.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/86075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

非对称加密实战:Python实现数字签名

目录 非对称加密实战&#xff1a;Python实现数字签名引言&#xff1a;数字世界的身份验证1. 非对称加密基础1.1 核心概念1.2 非对称加密算法比较 2. 数字签名原理2.1 数字签名工作流程2.2 数字签名的核心特性 3. RSA数字签名实现3.1 RSA算法数学基础3.1.1 密钥生成3.1.2 签名生…

优化提示词的常用技巧

优化提示词的常用技巧 1. 告诉AI你需要的重要要素 &#xff08;1&#xff09;风格&#xff1a;明确语言风格 优化前&#xff1a;写一篇人工智能的介绍。优化后&#xff1a;写一篇100字的人工智能介绍&#xff0c;受众是小学生&#xff0c;语言幽默。 &#xff08;2&#xf…

PyTorch实战(12)——StyleGAN详解与实现

PyTorch实战(12)——StyleGAN详解与实现 0. 前言1. StyleGAN1.1 模型介绍1.2 模型策略分析2. 实现 StyleGAN2.1 生成图像2.2 风格迁移小结系列链接0. 前言 StyleGAN (Style-Generative Adversarial Networks) 是生成对抗网络 (Generative Adversarial Networks, GAN) 的变体…

XML重复查询一条Sql语句??怎么解决

一、核心问题&#xff1a;从SQL重复执行到日志失效 1. 首要现象&#xff1a;XML重复查询失效 在排查服务性能时发现&#xff1a; <!-- MyBatis XML片段 --> <select id"List" resultMap"Map"> SELECT * FROM user WHERE name #{name} …

量化面试绿皮书:33. 不公平的硬币

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 33. 不公平的硬币 你有1000枚硬币。 其中&#xff0c;有1枚硬币正反两面都是正面。 其他的999枚硬币都是公平的硬币。 你随机选择一枚硬币并…

Java 期末考试题

1. 如果将类 MyClass 声明为 public&#xff0c;它的文件名必须是 ( ) 才能正常编译。 解&#xff1a;① 如果一个类被声明为 public&#xff0c;则必须以 .java 作为文件拓展名。 答案&#xff1a;MyClass.java 2. 定义类头时能使用的修饰符是&#xff08; &#xff09;…

跨标签页通信(三):Web Storage

在现代 Web 应用中&#xff0c;跨标签页通信的需求越来越普遍。无论是实现多标签页之间的数据同步&#xff0c;还是构建实时协作功能&#xff0c;跨标签页通信都能极大地提升用户体验。今天&#xff0c;我们将探讨一种简单而高效的实现方式&#xff1a;Web Storage。 一、什么…

大疆上云api 无人机摄像头红外调色模式

# topic thing/product/{你的机场}/property/set# 监听topic&#xff0c;获取设置结果 thing/product//property/set_reply#mqtt https://developer.dji.com/doc/cloud-api-tutorial/cn/api-reference/dock-to-cloud/mqtt/aircraft/m3d-properties.htmlthermal_current_palet…

DeepSeek与ChatGPT:免费与付费背后的选择逻辑

内容简介&#xff1a; 为什么有免费的DeepSeek&#xff0c;很多人还在付费用ChatGPT&#xff1f;作为20年互联网老兵&#xff0c;作者通过实测发现&#xff1a;AI工具好坏七成看你怎么跟它聊天。DeepSeek不是真的不如ChatGPT&#xff0c;而是需要掌握"撩AI"的技巧。文…

【nvidia-H100-ib排障实战1】:InfiniBand 带宽测试命令深度解析,找到影响生产集群性能的ib

目录 InfiniBand 带宽测试命令深度解析 一、命令整体功能概述 二、服务器端命令解析:ib_write_bw -a -d 1. 命令主体功能 2. 关键参数解析 3. 服务器端工作模式 三、客户端命令解析:ib_write_bw -a -d 1. 新增参数解析 2. 客户端工作流程 四、核心测试指标与输出解…

华为云Flexus+DeepSeek征文|基于华为云一键部署Dify LLM 应用构建 PPT 生成助手的开发与实践

目录 前言 1 华为云部署 Dify 平台简介 2 华为云 Dify 平台的部署与登录使用 3 模型接入与工具安装 3.1 接入 DeepSeek 大模型 3.2 安装 Markdown 转 PPT 工具 4 构建 PPT 生成助手应用工作流 4.1 开始节点 4.2 文档提取器 4.3 文本转 PPT 文稿 LLM 4.4 Markdown 转…

NW896NX769美光固态芯片NX790NX793

美光固态芯片深度解析&#xff1a;NX769、NX790、NX793与NW896技术全景 一、技术架构与核心特性 存储工艺与性能基础 美光NX系列&#xff08;含NX769/790/793&#xff09;及NW896均基于G9 NAND技术&#xff0c;采用176层TLC&#xff08;Triple-Level Cell&#xff09;3D NAND…

图像融合的评价指标

目录 一、常用指标总览 1.1 指标分类 二、 指标解析与python代码实现&#xff08;部分&#xff09; 2.1 基于信息熵的评估指标 A. 信息熵&#xff1a;/Entropy/EN B. 交叉熵 C.相关熵&#xff1a;Mutual Information/MI D.峰值信噪比/Peak signal-to-noise ratio/PSNR E. 基于边…

【数据结构初阶】--顺序表(一)

&#x1f525;个人主页&#xff1a;草莓熊Lotso &#x1f3ac;作者简介&#xff1a;C研发方向学习者 &#x1f4d6;个人专栏&#xff1a; 《C语言》 《数据结构与算法》 ⭐️人生格言&#xff1a;生活是默默的坚持&#xff0c;毅力是永久的享受。 前言&#xff1a;在上篇博客中…

Gateway路径匹配规则易错点

目录 一、问题描述 二、问题产生原因&#xff1a; 三、总结 一、问题描述 在做微服务的项目的时候&#xff0c;选择在nacos上配置Gateway网关的路由规则&#xff0c;然后在进行前后端联调测试的时候发现&#xff0c;部分的微服务可以正常访问&#xff0c;但是commerce-servic…

什么是大模型应用开发

一、概念点 自然语言处理&#xff08;NLP:Natural Language Processing&#xff09; 大模型&#xff08;LLM:Large Language Models&#xff09; 模型部署&#xff1a;云部署、本地部署、开放API 本地部署最简单的一种方案&#xff1a;ollama https://ollama.com 二、大模型应…

Linux系统能ping通ip但无法ping通域名的解决方法

一、先确认系统网络管理服务 现代 Linux 发行版常用 NetworkManager 或 systemd-networkd 管理网络&#xff0c;而非传统 networking.service &#xff0c;先检查系统在用的网络服务&#xff1a; 1.检查 NetworkManager 执行以下命令&#xff1a; sudo systemctl status …

0_序章导论

​​课程整体框架​​ ​​时长​​&#xff1a;4周 ​​终极目标​​&#xff1a; &#x1f449; 学完后比大公司CEO更懂AI&#xff0c;能领导团队解决实际问题 ​​每周核心内容分解​​ ​​第一周&#xff1a;重新认识AI的本质​​ ​​弱AI&#xff08;ANI&#xff09; …

docker一键清除指令

在 Linux 系统中&#xff0c;关闭 Docker 服务及容器的指令如下&#xff0c;具体操作需根据需求选择&#xff1a; 1. 停止 Docker 容器 (1) 停止所有正在运行的容器 # 停止所有运行中的容器&#xff08;推荐优雅关闭&#xff09; docker stop $(docker ps -q)(2) 强制停止所有…

阿里云主机自动 HTTPS 证书部署踩坑实录

阿里云主机自动 HTTPS 证书部署踩坑实录 前言 请原谅本篇标题,阿里云其实非常好用,只是细节很多,尤其是在HTTPS证书的配置和使用上。希望通过这篇文章,能够帮助到遇到类似问题的朋友们。 原理 服务器运行 acme.sh 脚本,自动申请和更新 Let’s Encrypt 的 SSL 证书。ac…