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
  • 相关阅读:
    Raft协议备注
    领域建模笔记
    Spark编程模型
    Spark如何删除无效rdd checkpoint
    Parquet 列式存储格式
    SpringBoot中ConditionalOnClass注解的原理
    SpringBoot定制Sevlet容器原理
    分析JDK的动态代理原理
    简述SpringCloud底层原理
    简述SpringCloud框架
  • 原文地址:https://www.cnblogs.com/tianfengcc/p/12619025.html
Copyright © 2011-2022 走看看