asp.net-core-mvc – ASP NET Core 2.0 appsettings.Development
我已经安装了VS2017 15.3.0 Preview 4和.NET Core 2.0 Preview 2,并创建了一个默认的Web MVC应用程序.我有兴趣了解新的日志记录功能如何工作但我无法让VS在查看Debug输出窗口时使用appsettings.Development.json中定义的日志记录值.
我的理解是appsettings.Development.json文件优先于appsettings.json,但只有后一个文件中的值对调试窗口有任何影响.这是正确的吗?如果有,是否需要额外的设置? 以下是价值和结果…… appsettings.json { "Logging": { "IncludeScopes": false,"Debug": { "LogLevel": { "Default": "None" } },"Console": { "LogLevel": { "Default": "Information" } } } } appsettings.Development.json { "Logging": { "IncludeScopes": false,"LogLevel": { "Default": "Information","System": "Information","Microsoft": "Information" } } } 调试时清空输出(请注意仅显示Application Insights遥测记录,我还没有找到如何摆脱它) 但是,如果我更改appsettings.json中的日志级别,那么我会看到输出符合预期… appsettings.json { "Logging": { "IncludeScopes": false,"Debug": { "LogLevel": { "Default": "Information" } },"Console": { "LogLevel": { "Default": "Information" } } } } 调试时的新输出(请注意,Microsoft.AspNetCore.Hosting.Internal.WebHost:现在包含信息) 我的Startup.cs文件是使用新项目创建的默认ASP.NET Core 2.0模板,如下所示.此外,appsettings.json和appsettings.Development.json文件也由新项目模板自动创建. public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser,IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); // Add application services. services.AddTransient<IEmailSender,AuthMessageSender>(); services.AddTransient<ISmsSender,AuthMessageSender>(); services.AddMvc(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app,IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); app.UseDatabaseErrorPage(); } else { app.UseExceptionHandler("/Home/Error"); } app.UseStaticFiles(); app.UseAuthentication(); app.UseMvc(routes => { routes.MapRoute( name: "default",template: "{controller=Home}/{action=Index}/{id?}"); }); } } 这是我的Program.cs,它也是ASP.NET Core 2.0 MVC模板的默认设置. public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); } 解 默认情况下,dev“appsettings.Development.json”配置文件在主“appsettings.json”配置文件之后加载,因此dev配置优先.但是,默认的appsettings.Development.json文件不包含日志级别设置的调试节点,这似乎很奇怪.这是工作开发配置. { "Logging": { "IncludeScopes": false,"LogLevel": { "Default": "None","System": "None","Microsoft": "None" },"Debug": { "LogLevel": { "Default": "Information","Microsoft": "Information" } } } } 解决方法
appsettings.json中的每个记录器设置优先于appsettings.Development.json的全局类别默认值.
您没有看到Visual Studio输出窗口中的任何日志,因为您的appsettings.json的调试记录器的日志级别为None. 您需要在appsettings.Development.json中遵循.NET Core 2.0的每个记录器格式(预览2),这应该是下面的格式,以覆盖appsettings.json中的格式. { "Logging": { "<Logger>": { "LogLevel": { "Default": "<LogLevel>" } } } } 为了清楚起见,如果你想要一个Debug logger的Trace日志级别,这就是它在你的json配置中应该是这样的: { "Logging": { "Debug": { "LogLevel": { "Default": "Trace" } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 会话的最大长度是什么ASP.net 4.0会话ID – 存储为varchar或
- asp.net – 为什么Scott Guthrie建议我们在Error.aspx中使用
- asp.net-mvc – Razor模板,views和angular.js
- asp.net-mvc – Asp.Net MVC – “动态”路由的最佳方法
- 如何使用MSBuild发布Asp.NET Web应用程序?
- asp.net-mvc – 如何单元测试HtmlHelper与Moq?
- asp.net – 如何使用HTML.ActionLInk构建嵌套路由URL?
- asp.net-mvc-3 – WebGrid列中的MVC3 Html.BeginForm?
- asp.net – 检测到NonComVisibleBaseClass;我该如何解决?
- 用C#实现pdf文件的完整性验证
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
- asp.net-mvc-4 – Html.LabelFor始终显示属性名称
- ASP.NET – 如果不包括CSS,如何包含CSS?
- 如何使用SOAP从经典ASP调用.Net Web服务方法
- asp.net-mvc – 该字符串未被识别为有效的布尔字
- asp.net-mvc-3 – 在MVC3 Controller操作中返回文
- asp.net中的身份验证Cookie
- asp.net-mvc – MVC WebGrid设置呈现的ID
- asp.net-mvc – Html.BeginForm使用FormMethod.G
- asp.net – bootstrap中的body-content类是什么