1、通过nuget 查找 下载 NLog.Extensions.Logging

2、配置nlog.config文件

 <?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"
throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug"> <!--
See http://nlog-project.org/wiki/Configuration_file
for information on customizing logging rules and outputs.
-->
<!--<nlog throwExceptions="true" internalLogFile="c:\nlog.txt" internalLogLevel="Debug" />-->
<targets>
<!-- add your targets here -->
<target xsi:type="File" name="file" fileName="${basedir}/logs/${level}/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" /> <!--<target type="Database" name="database" connectionString="Data Source=localhost;Initial Catalog=Test;User ID=sa;Password=sa;MultipleActiveResultSets=true; ">
<commandText>
insert into ErrorLog ([CreateDate], [Origin], [LogLevel], [Message], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @stackTrace);
</commandText>
<parameter name="@createDate" layout="${longdate}"/>
日志发生时间
<parameter name="@origin" layout="${callsite}"/>
日志发生时间
<parameter name="@logLevel" layout="${level}"/>
日志等级
<parameter name="@message" layout="${message}"/>
日志信息
<parameter name="@stackTrace" layout="${stacktrace}"/>
日志发生时间
</target>-->
<!--
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
-->
</targets> <rules>
<!-- add your logging rules here -->
<logger name="*" minlevel="Trace" writeTo="file"/>
<!--<logger name="*" level="Error" appendTo="database"/>--> </rules>
</nlog>

3、在Configure 添加配置

 //日志
loggerFactory.AddNLog();
env.ConfigureNLog("Config/nlog.config");

4、往project.json 添加配置  发布输出

   "publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config",
"Config", //nlog
"Export" //Export
]
},

5、封装的操作类

  /// <summary>
/// 日志
/// </summary>
public class NLogger
{
private static readonly Logger logger = LogManager.GetCurrentClassLogger(); #region "等级1-Debug"
/// <summary>
/// 记录调试信息
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="msg">具体信息</param>
public static void Debug(string msg, string userInfo = "")
{
string info = string.Empty;
if (userInfo != "")
{
info = userInfo;
}
info = info + "\r\n" + msg; logger.Debug(info);
} #endregion #region "等级2-Info" /// <summary>
/// 记录信息
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="msg">具体信息</param>
public static void Info(string msg, string userInfo = "")
{
string info = string.Empty;
if (userInfo != "")
{
info = userInfo;
}
info = info + "\r\n" + msg;
logger.Info(info); } #endregion #region "等级3-Warn" /// <summary>
/// 记录警告信息
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="msg">具体信息</param>
public static void Warn(string msg, string userInfo = "")
{
string info = string.Empty;
if (userInfo != "")
{
info = userInfo;
}
info = info + "\r\n" + msg;
logger.Warn(info); } #endregion #region "等级4-Error" /// <summary>
/// 记录错误信息
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="msg">具体信息</param>
public static void Error(string msg, string userInfo = "")
{
string info = string.Empty;
if (userInfo != "")
{
info = userInfo;
}
info = info + "\r\n" + msg;
logger.Error(info); } /// <summary>
/// 记录异常信息
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="ex">具体异常</param>
public static void Error(Exception ex, string userInfo = "")
{
string info = "";
if (userInfo != "")
{
info = userInfo;
}
info = info+"\r\n" + ErrorDetails(ex);
logger.Error(info); } /// <summary>
/// 将异常转成字符串
/// </summary>
/// <param name="ex"></param>
/// <returns></returns>
private static string ErrorDetails(Exception ex)
{
StringBuilder sb = new StringBuilder();
int count = ;
string appString = "";
while (ex != null)
{
if (count > )
{
appString += " ";
}
sb.AppendLine(appString + " <br>异常消息:" + ex.Message);
sb.AppendLine(appString + " <br>异常类型:" + ex.GetType().FullName);
// sb.AppendLine(appString + " <br>异常方法:" + (ex.TargetSite == null ? null : ex.TargetSite.Name));
sb.AppendLine(appString + " <br>异常源:" + ex.Source);
if (ex.StackTrace != null)
{
sb.AppendLine(appString + "<br>异常堆栈:" + ex.StackTrace);
}
if (ex.InnerException != null)
{
sb.AppendLine(appString + "<br>内部异常:");
count++;
}
ex = ex.InnerException;
} return sb.ToString().Replace("位置:", "<br>位置");
} #endregion #region "等级5-Fatal " /// <summary>
/// 记录致命错误
/// </summary>
/// <param name="userInfo">用户信息</param>
/// <param name="msg">具体信息</param>
public static void Fatal(string msg, string userInfo = "")
{
string info = string.Empty;
if (userInfo != "")
{
info = userInfo;
}
info = info + "\r\n" + msg;
logger.Fatal(info); } #endregion
}

5、调用

NLogger.Debug("测试");

.net core nlog记录日志的更多相关文章

  1. .Net Core 使用NLog记录日志到文件和数据库

    NLog 记录日志是微软官方推荐使用. 接下来,通过配置日志记录到文件和Sql Server数据库. 第一步:首先添加包NLog.Config (可通过微软添加包命令Install-Package 包 ...

  2. .netcore3.1使用log4net/nlog记录日志

    .netcore3.1使用log4net/nlog记录日志 .netcore3.1与2.x之间很是有不少差异的.本来想通过ctrl+c,ctrl+v将在2.2中实现的简单日志记录搬到.netcore3 ...

  3. [转]C# 使用Nlog记录日志到数据库

    本文转自:http://www.cnblogs.com/weixing/archive/2013/04/26/3044422.html 摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输 ...

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

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

  5. Nlog 记录日志到 sqlite

    最近研究了一下Nlog这个日志框架,这里记录一下如何将日志写到sqlite中. 第一步:使用NuGet获取Nlog和Sqlite 第二步:在sqlite中创建一个database,这里我用了SQLit ...

  6. C# 使用Nlog记录日志到数据库 使用LogEventInfo类获取,命名空间名称、类名、方法名

    原文地址:http://dotnet.9sssd.com/csbase/art/793 [摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数 ...

  7. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  8. C# 使用Nlog记录日志到数据库

    [摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数据库中.本文为你介绍C# 使用Nlog记录日志到数据库. Nlog是一个很不错的.NET ...

  9. asp.net core 使用NLog记录日志到txt文件

    一.使用VisualStudioCode创建一个webapi项目(也可以是mvc等).一个类库(用于封装记录日志方法,当然如果使用依赖注入到控制台项目,就不需要此类库了). 二.在类库中添加NLog. ...

随机推荐

  1. Hbulider里面template模板自用

    template.js 一款 JavaScript 模板引擎,简单,好用.提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果. 特性: 模版编 ...

  2. 转:jquery的live和on

    参考1,参考2 给元素绑定事件,本人用的jquery版本大多为1.7和1.8的,所以一直习惯于用live(),但是最近朋友突然问我,怎么给新生成的dom元素绑定事件,我随口回答live(),结果他给我 ...

  3. 用perl发送数据到钓鱼站

    一个皮皮果的游戏很火 估计很多人想黑 偶然发现一个钓鱼站: http://ppgpergame.com/ 钓用户名与密码 抓包后发现数据会发送到: http://ppgpergame.com/db.a ...

  4. Linux修改SSH端口和禁止Root远程登陆

    Linux修改ssh端口22 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd res ...

  5. neutron的agents

    一般agent的模块主要由Neutron api.core plugin(如linux bridge plugin,ovs plugin等).XX agent scheduler.XX agent.X ...

  6. HDU猜数字

    G - 猜数字 Time Limit:10000MS       Memory Limit:32768KB       64bit IO Format:%I64d & %I64u Descri ...

  7. gulp4个基础API

    Gulp.src(globs[, options]) 此接口会匹配工作目录下指定规则的文件并返回提供给下一个插件管道使用.其中globs就是匹配格式,options是一些额外参数. gulp.src( ...

  8. linux共享文件夹

    mnt中没有 hgfs,重新安装vm tools后问题解决

  9. openstack私有云布署实践【6 RabbitMQ】

    生产环境建议在集群三台controller上做rabbitmq 使用到队列的openstack组件 OpenStack Compute OpenStack Block Storage OpenStac ...

  10. 第八十五节,css布局补充一

    css布局补充一 图片边框问题 注意css布局时img图片标签默认有的浏览器有边框,所以大多时候需要去除图片的边框 CSS各种居中方法 水平居中的text-align:center 和 margin: ...