代码之家  ›  专栏  ›  技术社区  ›  zchpit

appsettings中的basedir。asp。网芯

  •  1
  • zchpit  · 技术社区  · 8 年前

    我在ASP中开始了我的新项目。网络核心和我有一个问题。

    我有两个记录员: a) nLog,在nLog中有它的配置。配置文件 b) serilog,在appsettings.json中有它的配置

    目前,我有两个位置存储日志: fileName=“${basedir}/logs/EPR/nlog all-${shortdate}.log-nlog “SerilogFile”:“logs/serilog-{Date}.txt”-serilog

    我的问题是,如何获得 巴塞迪尔 目录 appsettings.json 文件

    2 回复  |  直到 8 年前
        1
  •  3
  •   Nicholas Blumhardt    8 年前

    一个选项是在启动时使用基本路径设置环境变量:

    Environment.SetEnvironmentVariable("BASEDIR", AppDomain.CurrentDomain.BaseDirectory);
    

    然后使用 "%BASEDIR%/logs/serilog-{Date}.txt" 在配置中。

        2
  •  1
  •   Tseng    8 年前

    短的 :您不能在appsettings.json中。

    比较长的 :您可以通过静态 PlatformServices

    PlatformServices.Default.Application.ApplicationBasePath;
    

    然后使用“替换”或任何适合替换 ${basedir} 返回的值 ApplicationBasePath ,然后将其传递给记录器配置。

    旁注:您不应该使用 平台服务 Startup / Programm 类,因为它们是静态的,不适合测试等。