前面做的项目都是用的log4或者用个文件类写入文件中记录日志,这个nlog用着很方便,同时也有net core的版本,一步一步操作吧

1,nuget 中找到nlog并下载安装,注意框架版本,也可以去官网下载 :https://nlog-project.org/

2,安装ok后直接上代码

public sealed class Log{private static Logger _logger = LogManager.GetCurrentClassLogger();public static void Trace(string strMsg){_logger.Trace(strMsg);}//有很多重载,可以看提示public static void Trace(Exception e,string strMsg){_logger.Trace(e,strMsg); }public static void Debug(string strMsg){_logger.Debug(strMsg);}public static void Info(string strMsg){_logger.Info(strMsg);}public static void Warn(string strMsg){_logger.Warn(strMsg);}public static void Warn(Exception e){_logger.Warn(e);}public static void Warn(Exception e,string strMsg){_logger.Warn(e,strMsg);}public static void Error(string strMsg){_logger.Error(strMsg);}public static void Error(Exception e, string strMsg){_logger.Error(strMsg);}public static void Error(Exception e){_logger.Error(e);}public static void Fatal(string strMsg){_logger.Fatal(strMsg);}}

2,修改 Nlog.config 的文件,不修改有默认的格式和存储方式

2.1 可以通过文件方式记录,配置文件如下

当然格式化的值有很多,可以查看官方文档

<?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"xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"autoReload="true"throwExceptions="false"internalLogLevel="Off"><variable name="fileFormat"value="${newline}date: ${date}${newline}level: ${level}${newline}logger: ${logger}${newline}machinename: ${machinename}${newline}message: ${message}${newline}------------------------------------------------------------" /> <targets>  <!-- async="true" 使用异步确保程序退出,日志写完--><target name="logfile" xsi:type="File" maxArchiveFiles="1" layout="${fileFormat}"archiveAboveSize="102400000"  fileName="${basedir}/Logs/${date:format=yyyy-MM}/${shortdate}.log" /></targets><rules> <logger name="*" minlevel="Info" writeTo="logfile" /><logger name="*" minlevel="Trace" writeTo="file"/>  <!--写入到文件--> </rules>
</nlog>

2.2 执行sql记录到数据库中,配置如下

<?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"
xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
autoReload="true"
throwExceptions="false"
internalLogLevel="Trace" internalLogFile="Nlog.log"><variable name="variable1"value="${newline} date:   ${date}${newline}level:  ${level}${newline}logger:    ${logger}${newline}machinename:  ${machinename}${newline}message: ${message}${newline}appdomain:   ${appdomain}${newline}assembly-version:  ${assembly-version}${newline}basedir:    ${basedir}${newline}callsite:    ${callsite}${newline}callsite-linenumber:    ${callsite-linenumber}${newline}counter: ${counter}${newline}nlogdir: ${nlogdir}${newline}processid:   ${processid}${newline}processname:   ${processname}${newline}specialfolder:   ${specialfolder}${newline}stacktrace: ${stacktrace}${newline}" /><targets>
<!-- <target name="log_file"xsi:type="File"fileName="${basedir}/LogInformation/${level}_${shortdate}.txt"layout="${variable1}" />--><targetname="log_database"xsi:type="Database"connectionString="Data Source=.;Initial Catalog=localtext;Persist Security Info=True;User ID=sa;Password="><commandText>insert into NLogInfo([Date],[origin],[Level],[Message],[Detail]) values (getdate(), @origin, @logLevel, @message,@detail);</commandText><!--日志来源--><parameter name="@origin" layout="${callsite}" /><!--日志等级--><parameter name="@logLevel" layout="${level}" /><!--日志消息--><parameter name="@message" layout="${message}" /><!--引用variable1信息--><parameter name="@detail" layout="${variable1}" /></target>
</targets><rules><!--<logger name="*" writeTo="log_file" />--><logger name="*" writeTo="log_database" />
</rules>
</nlog>

NLogInfo的表结构创建脚本也给出来:

CREATE TABLE [dbo].[NLogInfo2]([LogId] [int] IDENTITY(1,1) NOT NULL,[Date] [datetime] NOT NULL,[Origin] [nvarchar](100) NULL,[Level] [nvarchar](50) NULL,[Message] [nvarchar](max) NULL,[Detail] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

3,运行测试

class Program{static void Main(string[] args){Console.WriteLine("开始 ...");try{throw new Exception("测试错误");}catch (Exception e){for (int i = 0; i < 10; i++){Log.Error(e.Message);Console.WriteLine($"执行了{i + 1}条记录 ...");}}Console.ReadKey();}}

3.1 执行到数据库中的结果

3.2.执行到文件中的结果

ok,写到这里,欢迎指教!

Nlog日志记录组件使用相关推荐

  1. 小巧的日志记录组件 - 开源研究系列文章

    今天给大家带来一个小巧的日志记录组件LogHelper.这个组件是由Log4Net这个组件的由来而来的,不过只是写入.txt文本文件而已.如果能够对大家的项目有帮助那就更好了. 首先,打开.SLN解决 ...

  2. 日志记录组件[Log4net]详细介绍(转)

    一 Log4net简介 Log4net是基于.net开发的一款非常著名的记录日志开源组件.他最早是2001年7月由NeoWorks Limited启动的项目,基本的框架源于另外的一个非常著名的姐妹组件 ...

  3. Elmah 日志记录组件

    http://www.cnblogs.com/jys509/p/4571298.html 简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理 ...

  4. MVC使用 Elmah 日志记录组件

    简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理程序,是一种应用广泛的错误日志工具是完全可插拔.它可以动态添加到一个正在运行的ASP.NE ...

  5. Apache日志记录组件Log4j出现反序列化漏洞 黑客可以执行任意代码 所有2.x版本均受影响...

    开源的东西用的人多了,自然漏洞就多.Apache用于日志记录的组件Log4j使用非常灵活,在相当多的开源项目中都有使用,此次漏洞影响所有Apache Log4j 2.*系列版本: Apache Log ...

  6. html 日志记录组件,使用HTML自定义格式的Log4j.properties进行日志记录

    我需要帮助编辑Apache Log4j文件的输出. 我正在使用html布局来保存创建的日志.这里是我的log4j.properties代码:使用HTML自定义格式的Log4j.properties进行 ...

  7. .Net Core Nlog日志记录到MySql

    前段时间想要实现这个功能网上找了很多资料,现在整理一下发布出来,希望给大家一点帮助. 首先是依赖项的选择: 关于NLog版本不是最新是因为最新版本有点问题我试了试不支持,所以选了这几个版本,MySql ...

  8. Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验

    Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblog ...

  9. Log4Net异常日志记录在asp.net mvc3.0的应用

    前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual ...

最新文章

  1. KDD 2019 | 结合属性随机游走的图递归网络
  2. linux透明大页内存,rhel7.2 禁用透明的大页内存--transparent_hugepage(THP)
  3. 安装Microsoft Hololens开发环境
  4. leetcode977. 有序数组的平方(暴力+双指针)
  5. mysql的DbUtils_Dbutils操作mysql
  6. linux内核烧制,学会分析Linux内核需要多久?8分钟
  7. 计算机软件和理论学什么,武汉大学计算机软件与理论考研科目有哪些?
  8. 公有云 私有云 混合云_混合云不断变化的面貌
  9. oracle自动分区maxvalue,对Maxvalue上限范围分区进行spilt操作
  10. mvc如何嵌套第三方页面_苹果屏蔽第三方Cookie,然后呢?
  11. python实现批量图片格式转换
  12. LOL手游登上去服务器维护,lol手游进不去怎么回事?无法登陆解决方法
  13. 【haoi2009】毛毛虫
  14. tkinter标签Lable组件的详细讲解
  15. 一些有趣的鸽巢原理的题目
  16. 费尔马小定理素数java_费马小定理,我的理解
  17. 串口调试助手 安卓版 附下载地址
  18. 你接触不到的阿里云福利
  19. 转载:GAN实例——野马变斑马【实测成功】
  20. Office 2013/Access 2013 连接字符串/connstr/connection string 解决方法/办法

热门文章

  1. 2018 年最流行的十大编程语言,Java 无可争议!
  2. yy自动语音接待机器人_YY语音最新应用教程 场控机器人
  3. 医疗大数据 隐私保护_大数据环境中的医疗数据隐私保护
  4. 【PAT甲级】字符串处理及进制转换专题
  5. element-ui upload 上传组件附带额外参数进行上传(表单形式,多个参数)
  6. PyCharm使用cxfreeze的方法
  7. Tushare简单的数据使用以及mysql存储教程
  8. MATLAB中画折线图:plot函数的简单用法
  9. 如何评价《就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者》里面这位CEO的所作所为?
  10. PyCharm 快速批量注释及取消注释