.net core 杂记:日记记录 (转)

时间:2019-04-25 15:31 作者:Mr.Pan 阅读数:702

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

以下为Nlog和log4net的使用记录

Nlog使用

  •  搜索添加Nuget包

Nlog
Nlog.Web.AspNetCore
  • 新建一个xml文件,并改名为nlog.config

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

复制代码

<?xml version= encoding= ?>
<nlog xmlns=====>

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

    <!--write logs to file-->
    <target xsi:type= name= fileName== />

  </targets>

  <rules>
    <!--All logs, including  Microsoft-->
    <logger name= minlevel= writeTo= />
  </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

复制代码

  ILoggerRepository repository { ; =
    repository = LogManager.CreateRepository(
    XmlConfigurator.Configure(repository,  FileInfo(

复制代码

 

  •  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( FileInfo(= LogManager.GetLogger(repository.Name,);

复制代码



文章转自:https://www.cnblogs.com/qiuguochao/p/10765614.html


推荐文章

[推荐] .NET Core 项目经验总结:Startup.cs 介绍(二)

[推荐] .NET Core 项目经验总结: UseStaticFiles 静态文件的使用(四)

[推荐] ASP.NET Core开发者成长路线图(转)

[推荐] Redis 使用经验总结(一): 下载与安装

[推荐] Redis 使用经验总结(三): 主从复制 slaveof ip port

[推荐] .Net Core 使用 @inject 在View中使用注入(DI)引入Microsoft.AspNetCore.Hosting.IHostingEnvironment

[推荐] nginx在windows上安装配置 - nginx for Windows

[推荐] .net core中前端包的安装

[推荐] .NetCore 发布类库为Nuget包(打造自己的NuGet包)

[推荐] .net core 2.0独立部署 (待验证)

[推荐] .net core 中间件管道底层剖析 (转)

[推荐] .net core 杂记:日记记录 (转)

[推荐] c# 个人总结

[推荐] .Net Core 2.0 使用dotnet 命令创建.Net Core Web项目

[推荐] Jquery.Validate例子


评论列表



注册用户登录后才能发表评论,请登录注册,访问 博客首页