• (四)笔记.net core学习之应用配置、多环境配置、日志与路由


    1.获取配置内容appsetting.json
        1.构造函数里注入Iconfigguration config;
        2. 通用方式
            1.var str=config["ConnecttionString"]; 
            2.获取下一级:var str=config["ConnecttionString:title"];
        3.绑定配置模型对象,使用config.Bind(appsetting)绑定指定类对象
        4.注册配置选项服务在ConfigureServices方法里
            1.注册 services.Configure(config);
            2.使用 方法里依赖注入泛型IOptions appsetting
            appsetting.value.ConnecttionString;
        5.自定义配置文件读取
            1.  var config = new ConfigurationBuilder().AddJsonFile("jsonConfig.json").Build();
                var name = config["name"];
            2.也可以使用第四步注册为服务
    2.多环境配置(约定大于配置)
        1.如果将默认名称Development名称改为其它,如Demo,同样在startup里有一个ConfigureDemoServices方法,则不会执行默认的ConfigureServices;
          如果是Configure方法则也是相同,其命名为ConfigureDemo
        2.也可以单独创建StartupDemo类,但需要改Program.cs启动文件
          webBuilder.UseStartup(Assembly.GetExecutingAssembly().FullName);//查找程序集完全名称
    3.日志组件
        1.日志级别:
            1.Trace    记录一些对程序员调试问题有帮助的信息,其中可能包含一些敏感信息, 所以应该避免在生产环境中启用Trace日志
            2.Debug    记录一些在开发和调试阶段有用的短时变量(Short-term usefulness), 所以除非为了临时排除生产环境的故障,开发人员应该尽量避免在生产环境中启用Debug日志
            3.Information    记录应用程序的一些流程, 例如,记录当前api请求的url
            4.Warning    记录应用程序中发生的不正常或者未预期的事件信息。这些信息中可能包含错误消息或者错误产生的条件, 例如, 文件未找到
            5.Error    记录应用程序中某个操作产生的错误和异常信息。
            6.Critical    记录一些需要立刻修复的问题。例如数据丢失,磁盘空间不足。
        2.依赖注入方式ILogger _logger
            _logger.LogInformation("正在请求Test接口!");
            _logger.LogWarning("三方请求接口,请求终止!");
            _logger.LogError("操作异常!");
        3.IServiceCollection注入AddLogging
            services.AddLogging(builder =>
                {
                    builder.AddConfiguration(Configuration.GetSection("Logging"))
                    .AddConsole()
                    .AddDebug();
                });
        4.注入ILoggerFactory 创建ILogger
        //注入ILoggerFactory 创建ILogger
                ILogger logger = loggerFactory.CreateLogger();
                logger.LogInformation("非主机模式输出log message");
        5.记录数据库文件用第三方,如elmah.io、Gelf、JSNLog、KissLog.net、Loggr、NLog、Serilog
    4.路由
        1.app.UseRouting()和app.UseEndPotions()成对出现。
            1.app.UseRouting():负责匹配路由与终结点(终端中间件),解析出路由信息,写进HttpContext,传给下一个中间件。
            2.app.UseEndPotions():负责执行和配置路由,当终端中间件不止有一个,此时就设置路由,来选择哪个终端中间件
        2.这两者之间可以获取路由信息,包括路由数据,对应中间件等,如
            app.UseRouting()
            app.Use(async(context,next)=>{
                var ep = context.GetEndPoint();
                await next();
            })
            app.UseEndPoint()

  • 相关阅读:
    Redis之五大基础数据结构深入、应用场景
    LLM研究之-NVIDIA的CUDA
    【JAVA项目实战】【图书管理系统】用户删除功能【Servlet】+【JQuery】+【Mysql】
    PyCharm 2024.1最新变化
    队列的运行算法
    Vue56-组件的自定义事件
    Kubernetes 那些奇技淫巧
    antDesign设置树和机构的组合
    WorkPlus移动数字化平台高定制化服务,贴身满足企业的个性化需求
    Go开发基础环境搭建
  • 原文地址:https://blog.csdn.net/liuwanying0226/article/details/127890877