本文共 3338 字,大约阅读时间需要 11 分钟。
通过Nuget安装NLog Nuget包,是进行日志记录的首要步骤。在Visual Studio中,可以通过右键项目,选择"管理包",搜索并安装NLog。
创建用于存储日志数据的数据库表,以下是建表语句:
create table TBL_LOG( id VARCHAR2(60) not null, appname VARCHAR2(20), modulename VARCHAR2(30), procname VARCHAR2(30), operationtype VARCHAR2(20), logger VARCHAR2(500), logmessage VARCHAR2(3000) not null, ip VARCHAR2(32), longdate VARCHAR2(36), username VARCHAR2(36), createdate DATE default sysdate, loglevel VARCHAR2(12))
在app.config中添加NLog配置,确保日志可以正确写入数据库。以下是常见配置示例:
创建一个简单的Logger类,用于方便调用日志记录功能。以下是类代码:
public class Logger{ private NLog.Logger _logger; public Logger(NLog.Logger logger) { _logger = logger; } public Logger(string name) : this(LogManager.GetLogger(name)) { } public static Logger Default { get; private set; } static Logger() { Default = new Logger(LogManager.GetCurrentClassLogger()); } public void Process(string APPNAME, string MODULENAME, string PROCNAME, OperationType OPERATIONTYPE, string LOGMESSAGE, string IP, string USERNAME, string LOGGER) { if (LOGMESSAGE.Length > 3000) { LOGMESSAGE = LOGMESSAGE.Substring(0, 3000); } var lei = new LogEventInfo(); lei.Properties["ID"] = Guid.NewGuid().ToString("D"); lei.Properties["APPNAME"] = APPNAME; lei.Properties["MODULENAME"] = MODULENAME; lei.Properties["PROCNAME"] = PROCNAME; lei.Properties["OPERATIONTYPE"] = OPERATIONTYPE; lei.Properties["LOGMESSAGE"] = LOGMESSAGE; lei.Properties["IP"] = IP; lei.Properties["USERNAME"] = USERNAME; lei.Properties["LOGGER"] = LOGGER; lei.Level = LogLevel.Info; _logger.Log(lei); } public void Process(string APPNAME, string MODULENAME, string PROCNAME, OperationType OPERATIONTYPE, string LOGMESSAGE, string IP, string USERNAME, string LOGGER, LogLevel Level) { if (LOGMESSAGE.Length > 3000) { LOGMESSAGE = LOGMESSAGE.Substring(0, 3000); } var lei = new LogEventInfo(); lei.Properties["ID"] = Guid.NewGuid().ToString("D"); lei.Properties["APPNAME"] = APPNAME; lei.Properties["MODULENAME"] = MODULENAME; lei.Properties["PROCNAME"] = PROCNAME; lei.Properties["OPERATIONTYPE"] = OPERATIONTYPE; lei.Properties["LOGMESSAGE"] = LOGMESSAGE; lei.Properties["IP"] = IP; lei.Properties["USERNAME"] = USERNAME; lei.Properties["LOGGER"] = LOGGER; lei.Level = Level; _logger.Log(lei); }}public enum OperationType{ ADD, UPDATE, AUDIT, DELETE, RETRIEVE, LOGIN, LOOK} 以下是一个在ASP.NET中使用Logger类的示例:
// 示例一Logger.Default.Process("系统管理", "权限管理", "用户管理", OperationType.RETRIEVE, "测试写入", Logger.DefaultIP, Logger.DefaultUser, this.GetType().ToString(), NLog.LogLevel.Error);// 示例二Logger.Default.Process("系统管理", "权限管理", "用户管理", OperationType.RETRIEVE, "测试写入", Logger.DefaultIP, Logger.DefaultUser, this.GetType().ToString()); 这篇文章详细介绍了使用NLog进行日志记录与数据库存储的完整流程,包括安装、配置、表设计和实际应用开发。通过这些步骤,你可以轻松实现应用程序的日志管理与分析需求。
转载地址:http://ycjfk.baihongyu.com/