nlog输出mysql_Core 2.0使用Nlog记录日志+Mysql

一、先创建一个Core2.0的项目,并在NuGet中引入3个类库文件

MySql.Data.dll

NLog.dll

NLog.Web.AspNetCore.dll

fb9e445c5e1a4e3a45e35bf9c1f5a346.png

二、创建一个nlog.config文件。这个文件的属性中的 “复制到输出目录”改为:始终复制

如果日志写入失败,会把错误写入此文件

name="database" connectionstring="Data Source=XXXXXXXXX;initial catalog=log;user id=XXXXX;password=XXXXX;SslMode=none">

INSERT INTO logs(Date,Thread,Level,Logger,Message,domain,errortype) VALUES (@log_date, @thread, @log_level, @logger, @message,@domain,@errortype)

nlog.config文件说明:

声明目标

声明规则

(1)路由规则详情(rules):

区域定义了日志的路由规则。每一个路由表项就是一个元素。有以下属性:

name- 日志源/记录者的名字 (允许使用通配符*)

minlevel-该规则所匹配日志范围的最低级别

maxlevel-该规则所匹配日志范围的最高级别

level-该规则所匹配的单一日志级别

levels-该规则所匹配的一系列日志级别,由逗号分隔。

writeTo-规则匹配时日志应该被写入的一系列目标,由逗号分隔。

final-标记当前规则为最后一个规则。其后的规则即时匹配也不会被运行。

如: 1、名字空间Name.Space下的Class1这个类的所有级别等于或者高于Debug的日志信息都写入到“f1”这个目标里。

2、名字空间Name.Space下的Class1这个类的所有级别等于Debug或Error的日志信息都写入到“f1”这个目标里。

3、名字空间Name.Space下所有类的所有级别的日志信息都写入到“f3”和“f4”这两个目标里。

4、 名字空间Name.Space下所有类的、级别在Debug和Error之间的(包括Debug,Info,Warn,Error) 日志信息都不会被记录(因为这条规则没有定义writeTo),

同时其它后续规则也都会被忽略(因为这里设置了final="true")。

(2)自动再配置:

听起来确实挺不好理解的。但是确实也没什么。换句简单的话来说,当我们一旦启动程序,这时候NLog.config文件被读取后,知道程序再启动都不会再读取配置文件了。假如我们不想停掉程序,比如说服务器哪能说停就停哈。这就用上这个配置了,这个配置功能是,一旦你对配置文件修改,程序将会重新读取配置文件,也就是自动再配置。直接上代码:

...

(3)日志排错

-设置internalLogFile属性可以让NLog把内部的调试和异常信息都写入指定文件里。 -决定内部日志的级别,级别越高,输出的日志信息越简洁。 -是否把内部日志输出到标准控制台。 -是否把内部日志输出到标准错误控制台 (stderr)。

设置throwExceptions属性为“true”可以让NLog不再阻挡这类异常,而是把它们抛给调用者。在部署是这样做可以帮我们快速定位问题。一旦应用程序已经正确配置了,

我们建议把throwExceptions的值设为“false”,这样由于日志引发的问题不至于导致应用程序的崩溃

(4)异步处理,使其具备异步处理能力

三、修改Startup文件,添加 ILoggerFactory loggerFactory

public voidConfigure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory)

{

//新天加的日志配置

loggerFactory.AddNLog();

env.ConfigureNLog("nlog.config");if(env.IsDevelopment())

{

app.UseBrowserLink();

app.UseDeveloperExceptionPage();

}else{

app.UseExceptionHandler("/Home/Error");

}

app.UseStaticFiles();

app.UseMvc(routes=>{

routes.MapRoute(

name:"default",

template:"{controller=Home}/{action=Index}/{id?}");

});

}

修改program文件,添加配置UseNlog()

c0fd69cff04738505856f537648512b4.png

四、开始添加内容

static NLog.ILogger logger =NLog.LogManager.GetCurrentClassLogger();publicIActionResult Index()

{

LogEventInfo log= newLogEventInfo();

log.Properties["log_level"] = "9";

log.Properties["log_date"] =DateTime.Now;

log.Properties["thread"] = 7;

log.Properties["logger"] = "big";

log.Properties["domain"] = "www.xiaoyaodijun.com";

log.Properties["message"] = "时光悠悠,碧水长流";

log.Properties["errortype"] = "core .server";

logger.Debug(log);returnView();

}

五、可以直接在数据库看结果了

9d0729b9b0988f4728a556b1a4c54b61.png

配置参考来源:https://www.cnblogs.com/fuchongjundream/p/3936431.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值