博客
关于我
NLog 自定义字段 写入 oracle
阅读量:796 次
发布时间:2023-02-16

本文共 3338 字,大约阅读时间需要 11 分钟。

使用NLog实现日志记录与数据库存储

1. 安装NLog

通过Nuget安装NLog Nuget包,是进行日志记录的首要步骤。在Visual Studio中,可以通过右键项目,选择"管理包",搜索并安装NLog。

2. 数据库表设计

创建用于存储日志数据的数据库表,以下是建表语句:

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

3. NLog配置

在app.config中添加NLog配置,确保日志可以正确写入数据库。以下是常见配置示例:

4. 封装日志处理

创建一个简单的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}

5. 在ASP.NET中使用示例

以下是一个在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/

你可能感兴趣的文章
nginx 配置~~~本身就是一个静态资源的服务器
查看>>
Nginx 配置服务器文件上传与下载
查看>>
Nginx 配置清单(一篇够用)
查看>>
Nginx 配置解析:从基础到高级应用指南
查看>>
Nginx 集成Zipkin服务链路追踪
查看>>
nginx 集群配置方式 静态文件处理
查看>>
nginx+php的搭建
查看>>
nginx+tomcat+memcached
查看>>
Nginx+Tomcat实现动静分离
查看>>
nginx+Tomcat性能监控
查看>>
nginx+uwsgi+django
查看>>
nginx+vsftp搭建图片服务器
查看>>
Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
查看>>
nginx-vts + prometheus 监控nginx
查看>>
nginx: [emerg] getpwnam(“www”) failed 错误处理方法
查看>>
nginx:Error ./configure: error: the HTTP rewrite module requires the PCRE library
查看>>
Nginx、HAProxy、LVS
查看>>
Nginx下配置codeigniter框架方法
查看>>
Nginx中使用expires指令实现配置浏览器缓存
查看>>
Nginx之二:nginx.conf简单配置(参数详解)
查看>>