.net core nlog记录日志
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记录日志的更多相关文章
- .Net Core 使用NLog记录日志到文件和数据库
NLog 记录日志是微软官方推荐使用. 接下来,通过配置日志记录到文件和Sql Server数据库. 第一步:首先添加包NLog.Config (可通过微软添加包命令Install-Package 包 ...
- .netcore3.1使用log4net/nlog记录日志
.netcore3.1使用log4net/nlog记录日志 .netcore3.1与2.x之间很是有不少差异的.本来想通过ctrl+c,ctrl+v将在2.2中实现的简单日志记录搬到.netcore3 ...
- [转]C# 使用Nlog记录日志到数据库
本文转自:http://www.cnblogs.com/weixing/archive/2013/04/26/3044422.html 摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输 ...
- .NET中使用NLog记录日志
以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂.下面小编就和大伙分享一下NLog的使用方式. 引用NLog.Config 在使用NLog之前,我们要首先添加对NLog.Co ...
- Nlog 记录日志到 sqlite
最近研究了一下Nlog这个日志框架,这里记录一下如何将日志写到sqlite中. 第一步:使用NuGet获取Nlog和Sqlite 第二步:在sqlite中创建一个database,这里我用了SQLit ...
- C# 使用Nlog记录日志到数据库 使用LogEventInfo类获取,命名空间名称、类名、方法名
原文地址:http://dotnet.9sssd.com/csbase/art/793 [摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数 ...
- EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象
EF+LINQ事物处理 在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...
- C# 使用Nlog记录日志到数据库
[摘要]Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台,保存到文本,也可以很方便的记录到数据库中.本文为你介绍C# 使用Nlog记录日志到数据库. Nlog是一个很不错的.NET ...
- asp.net core 使用NLog记录日志到txt文件
一.使用VisualStudioCode创建一个webapi项目(也可以是mvc等).一个类库(用于封装记录日志方法,当然如果使用依赖注入到控制台项目,就不需要此类库了). 二.在类库中添加NLog. ...
随机推荐
- leaflet地图在选项卡中不正常显示
可以在选项卡中加个click事件,调用下 <a href="#tab1" >tab1</a><a href="#tab2" onc ...
- 关于最新版本的log4net使用中遇到的问题
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...
- kali rolling 安装typecho
#1 apt-get install nginx php7.0 php7.0-mysql php7.0-gd php7.0-cgi php7.0-cli php7.0-curl php7.0-fpm ...
- windows线程池四种情形(win核心读书笔记)
windows线程池四种情形(win核心读书笔记) Mircosoft从Windows2000引入线程池API,并在Vista后对线程池重新构架,引入新的线程池API.以下所有线程池函数均适用于Vis ...
- hadoop MapReduce - 从作业、任务(task)、管理员角度调优
Hadoop为用户作业提供了多种可配置的参数,以允许用户根据作业特点调整这些参数值使作业运行效率达到最优. 一 应用程序编写规范 1.设置Combiner 对于一大批MapReduce ...
- Android(对话框)
一.消息对话框 所谓的消息对话框,就是说当你点击按钮弹框,它会弹出一个消息提示你,消息对话框有相应的确定.取消.其他按钮,比如下方: 代码: //消息提示框 public void testOne(V ...
- sublime修改代码字体颜色
1.首先知道你采用的是什么颜色主题在Preferences => color scheme查看,假设是Monokai2.查找该主题的脚本文件Preferences => Browse Pa ...
- Java线程的几种状态
一. 线程状态类型1. 新建状态(New):新创建了一个线程对象.2. 就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中,变得可运 ...
- Linux下安装awstats日志统计分析
1. 下载安装 cd /data/software wget http://prdownloads.sourceforge.net/awstats/awstats-7.0-1.noarch.rpm 2 ...
- wordpress 删除底部"自豪地采用 WordPress"
找到footer.php文件,删除以下代码即可: <footer id="colophon" class="site-footer" role=" ...