最近在用EFcore,由于不熟悉,经常出现一些异常都不知道如何排查,只能把EFcore的执行记录打印出来调查。确实简化了很多问题的调查。

官网提供了Asp.net Core与.net core 应用的配置,唯独没有WPF等应用的说明。本章作为一个补充,供各位参考。

由于我用的是Prism+PostgreSQL+Nlog,所有这里只讲述EntityframeworkCore的Nlog出力方法。

所需安装包

  • NLog
  • NLog.Extensions.Logging
  • Npgsql.EntityFrameworkCore.PostgreSQL

依赖注入设置

App.xaml.cs

        protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<Login>(Authentication.LoginURL);
containerRegistry.Register<ILoggerFactory, NLog.Extensions.Logging.NLogLoggerFactory>();
}

NLogLoggerFactory默认会创建一个新的NLogLoggerProvider。

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"
autoReload="true"> <variable name="loglayout" value="${longdate}|${level:uppercase=true}|${message} ${exception:format=tostring}"/>
<targets async="true">
<target name="infologfile" xsi:type="File" fileName="logs/Info.${shortdate}.log"
layout="${loglayout}" />
</targets> <rules>
<logger name="*" minlevel="Debug" writeTo="debuglogfile" />
</rules>
</nlog>
async="true"非同期更新日志。默认在exe执行文件夹下创建一个Logs文件夹存放日志。

DbContext配置

由于使用了DI,只需要在构造函数里面传入ILoggerFactory就可以。

    public class PsqlDbContext : DbContext, IDbContext
{ private readonly ILoggerFactory _factory; public PsqlDbContext(ILoggerFactory loggerFactory)
{
_factory = loggerFactory;
} protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseLoggerFactory(_factory)
.EnableSensitiveDataLogging()
.UseNpgsql("ProstgreSqlConnectStringxxxxx");
}

这样就设置完成了。

实例截图

执行了那些sql,执行超时时间都一目了然。

最新文章

  1. ARM Linux Qt 5.x.x 无标题栏
  2. canvas 动态画线
  3. Microsoft.Office.Interop.Excel 程序集引用 ,Microsoft.Office.Interop.Excel.ApplicationClass 无法嵌入互操作类型
  4. Android学习笔记——button_activity
  5. 6754&#160;Keyboard of a Mobile Telephone
  6. oracle增量备份
  7. 深入浅出Docker(一):Docker核心技术预览
  8. Sql Server 系统表功能
  9. MySQL索引的创建、删除和查看
  10. String.Format 全汇总
  11. wordpress密码生成与登录密码验证
  12. Self-numbers 2 - SGU 108
  13. 基于visual Studio2013解决C语言竞赛题之0705矩阵转置
  14. Eclipse中快捷键的使用
  15. 如何使用XE2及更高版本中提供的自定义皮肤(样式)功能
  16. 【NLP】3000篇搜狐新闻语料数据预处理器的python实现
  17. .net core 部署到 iis 步骤及报错解决方法
  18. mysql7笔记----存储过程实例
  19. nodejs版 阿里云开放api签名算法
  20. Python——POP3邮件协议

热门文章

  1. 持续集成高级篇之Jenkins windows/linux混合集群搭建(二)
  2. git:clone 本地克隆的几种情况
  3. 搜索入门练习题9 LETTERS 题解
  4. Linux 笔记 - 前三章 CentOS 简介、安装和远程连接
  5. CTC安装错误之:binding.cpp:6:29: fatal error: torch/extension.h: No such file or directory
  6. vue2.0搭建vue手脚架(vue-cli)
  7. python接口测试(post,get)-传参(data和json之间的区别)
  8. jquery让form表单异步提交
  9. 记一个复杂组件(Filter)的从设计到开发
  10. Fliptile POJ-3279 DFS