NLog是什么?

NLog是一个简单灵活的.NET日志记录类库,可以免费使用的开源代码。

NLog日志输出什么类型?

输出文本文件,如TXT文件

输出控制台

输出EMAIL邮件

输出数据库

输出Windows系统日志等等

如何使用NLog组件?

1)下载NLog组件

通过VS2015的NuGet下载组件,见图

下载NLog和NLog.Config即可。

2)配置NLog.Config文件

关于NLog配置参数,请参考NLog官网:http://nlog-project.org/

源代码托管地址:https://github.com/nlog/NLog/wiki/Configuration-file

以下是我的配置文件中的关键配置代码,直接上代码:

dbProvider="Oracle.ManagedDataAccess.Client"

connectionStringName="OraConnstr"

commandText="insert into (APPNAME,MODULENAME,PROCNAME,OPERATIONTYPE,LOGGER,LOGMESSAGE,IP,LONGDATE,USERNAME,LOGLEVEL) values(:APPNAME,:MODULENAME,:PROCNAME,:OPERATIONTYPE,:LOGGER,:LOGMESSAGE,:IP,:TIME_STAMP,:USERNAME,:LOGLEVEL)"

commandType="Text" >

Oracle.ManagedDataAccess.Client

smtpServer="smtp.126.com"

smtpPort="25"

smtpAuthentication="Basic"

smtpUserName="你的126邮箱名字"

smtpPassword="你的126邮箱密码"

enableSsl="true"

addNewLines="true"

from="你的发送126邮箱地址"

to="接收的邮箱地址"

subject="主题名称"

header="==============="

body="${newline}${message}${newline}"

footer="================"

encoding="UTF-8" />

3)NLog自定义类库封装

以下是主要代码:

日志类初始化

try

{

if (File.Exists(CONFIGPATH))

{

StringBuilder sb = new StringBuilder(STRINGMAX);

WinAPI.GetPrivateProfileString("LOGMANAGER", "DATALOGSOURCE", "", sb, STRINGMAX, CONFIGPATH);

DATALOGSOURCE = sb.ToString();

WinAPI.GetPrivateProfileString("LOGMANAGER", "DATALOGNAME", "", sb, STRINGMAX, CONFIGPATH);

DATALOGNAME = sb.ToString();

WinAPI.GetPrivateProfileString("LOGMANAGER", "MODE", "", sb, STRINGMAX, CONFIGPATH);

LogMode = sb.ToString();

}

switch (LogMode)

{

case "1": //Txt文件记录日志

break;

case "2": //windows系统记录日志

if (!EventLog.SourceExists(DATALOGSOURCE))

EventLog.CreateEventSource(DATALOGSOURCE, DATALOGNAME);

SysLog = new EventLog(DATALOGNAME);

break;

case "3": //数据库记录日志

break;

case "4": //发送邮件

break;

}

}

catch (Exception ex)

{

throw new Exception(ex.Message);

}

写日志函数

public static void AddErrorLog(string msg, string APPNAME = "", string MODULENAME = "", string PROCNAME = "", string OPERATIONTYPE = "", string IP = "127.0.0.1", string USERNAME = "ADMIN", string LOGGER = "From")

{

switch (LogMode)

{

case "1": //Txt文件记录日志

logger.Error(msg);

break;

case "2": //windows系统记录日志

SysLog.Source = DATALOGSOURCE;

SysLog.WriteEntry(msg, EventLogEntryType.Error);

break;

case "3"://写数据库表

WriteDB(msg, LogLevel.Error, APPNAME, MODULENAME, PROCNAME, OPERATIONTYPE, IP, USERNAME, LOGGER);

break;

case "4": //发送邮件

logger.Error(msg);

break;

}

}

写数据库公共函数:

public static void WriteDB(string LOGMESSAGE, LogLevel Level, string APPNAME = "", string MODULENAME = "", string PROCNAME = "", string OPERATIONTYPE = "", string IP = "127.0.0.1", string USERNAME = "ADMIN", string LOGGER = "From")

{

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["LOGGER"] = LOGGER;

lei.Properties["LOGMESSAGE"] = LOGMESSAGE;

lei.Properties["IP"] = IP;

lei.Properties["TIME_STAMP"] = DateTime.Now;

lei.Properties["USERNAME"] = USERNAME;

lei.Properties["LOGLEVEL"] = Level.Name;

lei.Level = Level;

logger.Log(lei);

}

NLog自定义类库使用

直接调用写数据库:Log.AddErrorLog(ex.Message,"应用名称","模块名称","系统MAIN函数执行","自动","127.0.0.1",sysdata.curUserID,"Program");

可以修改sysconfig.ini文件的日志写入模式,见图

源代码我已上传到百度网盘:链接:https://pan.baidu.com/s/1utnhzcyZJ_7gpnALAsZWDA

有需要的朋友可以加我微信:dj1348822213

oracle nlog,C#使用NLog记录日志相关推荐

  1. [转]Porting to Oracle with Entity Framework NLog

    本文转自:http://izzydev.net/.net/oracle/entityframework/2017/02/01/Porting-to-Oracle-with-Entity-Framewo ...

  2. Oracle提供的自治事务记录日志的方法

    平时在存储过程或者触发器中,想对过程中出现的异常进行记录,但是又存在一个问题,就是异常的时候,之前的DML操作要回滚,那么对异常的记录的insert语句也要被回滚掉,怎么办?这个时候就可以用到Orac ...

  3. .NET中使用NLog记录日志

    以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂.下面小编就和大伙分享一下NLog的使用方式. 引用NLog.Config 在使用NLog之前,我们要首先添加对NLog.Co ...

  4. ASP.NET应用程序使用NLog记录日志

    在上一家公司就在使用NLog做日志记录,调用方便又好配置,查看日志非常方便.所以在新公司新项目中就想到了它.背景交代完毕. 先看配置,在ASP.NET应用程序中,NLog会自动扫描以下这几个文件 1) ...

  5. 使用Nlog记录日志到数据库

    Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数据库中. 可以在这里下载Nlog:http://nlog-project.org/ 这里分享一下 ...

  6. 如何在 ASP.NET Core 中使用 NLog 的高级特性

    NLog 是一个开源的轻量级日志框架,提供了丰富的日志路由和管理功能,同时 NLog 也是非常容易的去配置和扩展,其实在之前的文章中我已经讨论过了 Nlog,在这篇我准备继续和大家讨论一下 NLog ...

  7. Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统

    Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统 原文:Elasticsearch,Kibana,Logstash,NLog实现ASP. ...

  8. ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB

    在项目开发中,日志系统是系统的一个重要组成模块,通过在程序中记录运行日志.错误日志,可以让我们对于系统的运行情况做到很好的掌控.同时,收集日志不仅仅可以用于诊断排查错误,由于日志同样也是大量的数据,通 ...

  9. asp.net core添加全局异常处理及log4net、Nlog应用

    一.介绍 此篇文章将会介绍项目的全局异常收集以及采用log4net或者NLog记录. 众所周知,一旦自己的项目报错,如果没有进行处理都是显示不友好的,有得甚至直接爆出错误页面,看的也是很奇怪. 为了避 ...

最新文章

  1. (19)Reactor Processors——响应式Spring的道法术器
  2. Html5 绘制旋转的太极图
  3. caffe data层_Caffe 学习:Eltwise层
  4. MyBatis-17MyBatis代码生成器(逆向工程)MBG使用
  5. C语言交换两个数字的三种做法
  6. POJ - 1190 生日蛋糕(dfs+剪枝)
  7. disruptor3_发布Disruptor 3.0.0
  8. linux nm 和ar命令
  9. python第十八天
  10. 芯片上链,英特尔加入蚂蚁区块链生态
  11. 代码分析系列 数3退1
  12. 提高COOKIE的安全性--相关解决方案
  13. 易语言5.9免加密狗版
  14. DDOS攻击是什么意思?服务器怎么防DDOS攻击?
  15. suse报:passwd: Module is unknown passwd: password unchanged 或 passwd: Permission denied
  16. java编写实现更新_Android实现APP自动更新功能
  17. 【建议收藏】6款高质量Windows软件,好用到无法拒绝
  18. 33省市出台区块链专项政策,有地方拿户口、百万奖金抢人
  19. 在 Linux 终端中自定义 Bash 配色和提示内容
  20. 最大值最小值算法(象棋博弈)

热门文章

  1. android l moto x 1,第一代Moto X即将迎来Android 5.1更新
  2. DM5 java 例子
  3. python 猜谜小游戏
  4. MATLAB机器学习系列-6 竞争神经网络与SOFM(SOM)神经网络原理及其例子代码
  5. 单片机毕设选题 Stm32便携心率体温检测仪 - 嵌入式 物联网
  6. PTA 7-11 拯救007 基础dfs
  7. 每个人都有自己的优点和缺点
  8. PHP开源CMS系统 Typo3
  9. 【OpenCV手眼标定(calibrateHandeye())】
  10. HTML5 + CSS制作一个网络照片墙