博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NLog 自定义字段 写入 oracle
阅读量:7240 次
发布时间:2019-06-29

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

1、通过Nuget安装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.config,正式运行 throwExceptions="false"

 

 

 

 

 

4、简单封装

public class Logger    {        #region 初始化        ///         /// 数据错误无法获取用户时使用        ///         public static string DefaultUser = "system";        ///         /// 默认地址        ///         public static string DefaultIP = "127.0.0.1";        NLog.Logger _logger;        private 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());        }        #endregion        #region Process日志写入        ///         /// 日志写入        ///         /// 菜单大类        /// 二级菜单        /// 本级菜单        /// 操作类型        /// 详细日志        /// ip地址        /// 用户名        /// LOGGER        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);            }            LogEventInfo 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);        }        ///         /// 日志写入,自己传日志类别        ///         /// 菜单大类        /// 二级菜单        /// 本级菜单)        /// 操作类型        /// 详细日志        /// ip地址        /// 用户名        /// LOGGER        /// 日志级别        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);            }            LogEventInfo 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);        }        #endregion          }    ///     /// 操作类型枚举    ///     public enum OperationType    {        ///         /// 保存或添加        ///         [System.ComponentModel.Description("保存或添加")]        ADD,        ///         /// 更新        ///         [System.ComponentModel.Description("更新")]        UPDATE,        ///         /// 审核        ///         [System.ComponentModel.Description("审核")]        AUDIT,        ///         /// 删除        ///         [System.ComponentModel.Description("删除")]        DELETE,        ///         /// 读取/查询        ///         [System.ComponentModel.Description("读取/查询")]        RETRIEVE,        ///         /// 登录        ///         [System.ComponentModel.Description("登录")]        LOGIN,        ///         /// 查看        ///         [System.ComponentModel.Description("查看")]        LOOK    }

5、asp.net中的调用列子:

1             Logger.Default.Process("系统管理", "权限管理", "用户管理", OperationType.RETRIEVE, "测试写入", Logger.DefaultIP, Logger.DefaultUser, this.GetType().ToString(), NLog.LogLevel.Error); 2 Logger.Default.Process("系统管理", "权限管理", "用户管理", OperationType.RETRIEVE, "测试写入", Logger.DefaultIP, Logger.DefaultUser, this.GetType().ToString());

 

转载地址:http://rzfbm.baihongyu.com/

你可能感兴趣的文章
宇宙沸腾SCCM 2012 R2系列(10)OSD操作系统部署(二)- 添加和分发系统映像包
查看>>
win7系统GNS3连接真实网络
查看>>
grub加密
查看>>
gird鼠标移动显示tip
查看>>
Centos 6.2文本模式安装
查看>>
经典日志分析-AWStats
查看>>
vim中高级技巧
查看>>
centos7+VMware Workstation创建共享文件夹
查看>>
ThinkPHP中RBAC数据库详解(一)
查看>>
vsftp调测备忘!
查看>>
W驱开技详.加载NT驱动
查看>>
Windows API 第16篇 GetLogicalDrivers 获取驱动器位掩码
查看>>
开始学习MVC
查看>>
system generator学习笔记【01】
查看>>
基础002_V7-CLB
查看>>
Joseph UVA 1452 Jump
查看>>
学习进度
查看>>
浅析JavaScript事件流——冒泡
查看>>
学习运维决心书
查看>>
计算中英文混合字符串的宽度
查看>>