详解.net core日记记录

 更新时间:2019-06-25 03:01:37   作者:佚名   我要评论(0)

ASP.NET Core 有内置的log组件,遗憾的是看了微软官方文档,貌似无法直接将日志存于文件或数据库,只能由自己实现或引用第三方日志组件。
以下为Nlog和log4ne

ASP.NET Core 有内置的log组件,遗憾的是看了微软官方文档,貌似无法直接将日志存于文件或数据库,只能由自己实现或引用第三方日志组件。

以下为Nlog和log4net的使用记录

Nlog使用

搜索添加Nuget包

Nlog
Nlog.Web.AspNetCore

新建一个xml文件,并改名为nlog.config

XML内容如下(可配置日志目录名称、输出格式):

<?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"
  internalLogLevel="Warn"
  internalLogFile="internal-nlog.txt">

 <!--define various log targets-->
 <targets>

 <!--write logs to file-->
 <target xsi:type="File" name="allfile" fileName="Logs/service-${shortdate}.log"
     layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

 </targets>

 <rules>
 <!--All logs, including from Microsoft-->
 <logger name="*" minlevel="Trace" writeTo="allfile" />
 </rules>
</nlog>

 将nlog.config设置输出到目录

在Startup类中配置

需要引入命名空间:

using NLog.Extensions.Logging;

using NLog.Web;

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactor)
{
 //使用Nlog
 loggerFactor.AddNLog();
 //引入配置文件
 env.ConfigureNLog("nlog.config");
 if (env.IsDevelopment())
 {
  app.UseDeveloperExceptionPage();
 }
 else
 {
  app.UseExceptionHandler("/Error");
 }
 app.UseStaticFiles();
 app.UseCookiePolicy();

 app.UseMvc();
}

代码中的使用

有两中方式如下:

1、注入形式

public class IndexModel : PageModel
{
 private ILogger<IndexModel> _logger;
 public IndexModel(ILogger<IndexModel> logger)
 {
  _logger = logger;
 }
 public string Customer { get; set; }
 public void OnGet()
 {
  _logger.LogWarning("111111111111111111111");
  Customer = "123456";
 }
}

2、获取实例形式

private static Logger Logger = LogManager.GetCurrentClassLogger();
public static void Main(string[] args)
{
 Logger.Error("22222222222222222222222222222");
 Logger.Info("333333333333333333333333333333");
}

 log4net

 log4net已支持net core,来看下在net core下是如何配置的,与之前的版本还是有一点的区别

使用惯例,引用Nuget

log4net

新建配置文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <!-- This section contains the log4net configuration settings -->
 <log4net>
 <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
 </appender>

 <appender name="FileAppender" type="log4net.Appender.FileAppender">
  <file value="log-file.log" />
  <appendToFile value="true" />
  <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
 </appender>

 <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="logs/" /> 
  <appendToFile value="true" />
  <rollingStyle value="Date" />
  <staticLogFileName value="false" />
  <datePattern value="yyyy-MM-dd'.log'" />
  <maxSizeRollBackups value="7" />
  <maximumFileSize value="1MB" />
  <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  </layout>
 </appender>

 <!-- Setup the root category, add the appenders and set the default level -->
 <root>
  <level value="ALL" />
  <appender-ref ref="ConsoleAppender" />
  <appender-ref ref="FileAppender" />
  <appender-ref ref="RollingLogFileAppender" />
 </root>

 </log4net>
</configuration>

配置文件的相关说明,可以查看另一篇文章点我跳转

在StartUp.cs中配置log4Net

public static ILoggerRepository repository { get; set; }

public Startup(IConfiguration configuration)
{
 Configuration = configuration;
 //log4net
 repository = LogManager.CreateRepository("NETCoreRepository");
 //指定配置文件
 XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
}

 Controller中的使用

private ILog log = LogManager.GetLogger(Startup.repository.Name, typeof(ValuesController));

[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
 log.Info(1111111111111111111);
 return new string[] { "value1", "value2" };
}

控制台中的使用

ILoggerRepository repository = LogManager.CreateRepository("NETCoreRepository");

XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));

ILog log = LogManager.GetLogger(repository.Name,"NETCorelog4net");
 
log.Info("test log");

以上所述是小编给大家介绍的.net core日记记录详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

  • Asp.Net Core对接钉钉群机器人的完整步骤记录
  • .Net Core中使用Quartz.Net实践记录
  • .NET Core 2.1中HttpClientFactory的最佳实践记录
  • 详解ASP.NET Core应用中如何记录和查看日志

相关文章

  • 详解.net core日记记录

    详解.net core日记记录

    ASP.NET Core 有内置的log组件,遗憾的是看了微软官方文档,貌似无法直接将日志存于文件或数据库,只能由自己实现或引用第三方日志组件。 以下为Nlog和log4ne
    2019-06-25
  • 详解log4net的使用

    详解log4net的使用

    程序中只需要引用log4net.dll文件即可 配置的引用 log4net.Config.XmlConfigurator.Configure(); 首先添加以上代码。 CS程序:在Main方法中添加; BS程序:
    2019-06-25
  • docker部署Asp.net core应用的完整步骤

    docker部署Asp.net core应用的完整步骤

    1 容器概念 使用Docker前我们首先要简单了解一下容器的概念。MSDN上有一张虚拟机和容器的对比图,很好的展示了虚拟机和容器的区别,如下所示,虚拟机包括应用
    2019-06-25
  • .NET Core Dapper操作mysql数据库的实现方法

    .NET Core Dapper操作mysql数据库的实现方法

    前言 现在ORM盛行,市面上已经出现了N款不同的ORM套餐了。今天,我们不谈EF,也不聊神马黑马,就说说 Dapper。如何在.NET Core中使用Dapper操作Mysql数据库呢
    2019-06-25
  • asp.net core 系列之并发冲突的深入理解

    asp.net core 系列之并发冲突的深入理解

    本文介绍如何处理多个用户并发更新同一实 体(同时)时出现的冲突 。 主要是两种:一种,检查属性并发冲突,使用 [ConcurrencyCheck] ;另一种,检测行的并
    2019-06-25
  • 详解.Net Core 权限验证与授权(AuthorizeFilter、ActionFilterAttribute)

    详解.Net Core 权限验证与授权(AuthorizeFilter、ActionFilterAttribute)

    在.Net Core 中使用AuthorizeFilter或者ActionFilterAttribute来实现登录权限验证和授权 一、AuthorizeFilter 新建授权类AllowAnonymous继承AuthorizeFilt
    2019-06-25
  • 浅析.Net Core中Json配置的自动更新

    浅析.Net Core中Json配置的自动更新

    Pre 很早在看 Jesse 的 Asp.net Core快速入门 的课程的时候就了解到了在Asp .net core中,如果添加的Json配置被更改了,是支持自动重载配置的,作为一名有着严重
    2019-06-25
  • .NET开发人员关于ML.NET的入门学习

    .NET开发人员关于ML.NET的入门学习

    ML.NET一直在微软的研究部门的工作。这些创新已经用于他们自己的产品,如Windows Defender,Microsoft Office(Powerpoint设计理念,Excel图表推荐),Azure机
    2019-06-25
  • Windows下Visual Studio 2017安装配置方法图文教程

    Windows下Visual Studio 2017安装配置方法图文教程

    Windows下Visual Studio 2017 安装,具体内容如下 1.打开下载页。 打开VS产品下载页面,链接 2.选择版本下载 选择相应的版本(社区,Professional,企业版)
    2019-06-25
  • 前端Vue项目详解--初始化及导航栏

    前端Vue项目详解--初始化及导航栏

    一、项目初始化 创建webpack模板项目如下所示: MacBook-Pro:PycharmProjects hqs$ vue init webpack luffy_project &#63; Project name luffy_project
    2019-06-25

最新评论