zoukankan      html  css  js  c++  java
  • asp.net core 3 使用nlog日志组件,使用$ {basedir}保存位置不对,记录下怎么解决

    $ {basedir}指向的是  AppDomain.CurrentDomain.BaseDirectory,

    Asp.Net.Core的解决方法可能如下(在Program.cs中添加两行):

    var appBasePath = System.IO.Directory.GetCurrentDirectory();
    NLog.GlobalDiagnosticsContext.Set("appbasepath", appBasePath);
    var logger = LogManager.LoadConfiguration("nlog.config").GetCurrentClassLogger();

    然后,您可以${gdc:item=appbasepath}nlog.config

    <?xml version="1.0"?>
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          autoReload="true"
          internalLogLevel="Warn"
          internalLogFile="${gdc:item=appbasepath}loginternal-nlog.txt">
    
      <extensions>
        <add assembly="NLog.Web.AspNetCore"/>
      </extensions>
    
      <targets async="true">
        <target name="ownfile" xsi:type="File"
                concurrentWrites="true"
                keepFileOpen="true"
                fileName="${gdc:item=appbasepath}log
    log-${shortdate}.log"
                encoding="utf-8"
                layout="${longdate}|${machinename}|${uppercase:${level}}|${logger}|${message}|${exception:format=tostring}|${aspnet-request-method}|${aspnet-traceidentifier}|${aspnet-request-ip}|${aspnet-request-url}|${aspnet-mvc-action}" />
      </targets>
      <rules>
        <!--Skip non-critical Microsoft logs and so log only own logs-->
        <logger name="Microsoft.*" maxLevel="Info" final="true" />
        <logger name="*" minlevel="Info" writeTo="ownfile" />
      </rules>
    </nlog>
     本文出自:http://tianfeng.cc/Article/5879
  • 相关阅读:
    第一课:神经网络与机器学习
    自然语言基础之分词、标注、命名实体识别
    工程能力-语言-框架
    二叉树
    spark入门
    微平台推荐系统介绍(基于java)
    简历项目的梳理和面试准备
    统计学习方法李航学习笔记
    NopCommerce fluent validation使用
    NopCommerce支持多语言
  • 原文地址:https://www.cnblogs.com/tianfengcc/p/12619025.html
Copyright © 2011-2022 走看看