1. ホーム
  2. c#

[解決済み] ASP.NET core フレームワークが行うログをオフにする方法

2023-02-10 23:49:42

質問

ASP.NET が各リクエストに対して行うロギングをオフにするにはどうしたらよいでしょうか。

INFO 09:38:41 User profile is available. Using 'C:\Usersxxxx xxxx 001Local ASP.NET FilterDataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.

DEBUG 09:38:41 ホスティング開始

DEBUG 09:38:41 ホスティングを開始しました。

INFO 09:38:41 リクエスト開始 HTTP/1.1 GET http://localhost:23369/

INFO 09:38:41 リクエスト開始 HTTP/1.1 DEBUG http://localhost:23369/ text/html DEBUG 09:38:41 DEBUG リクエストはサポートされていません。

DEBUG 09:38:41 リクエストパス / は、サポートされているファイルタイプに一致しません。

DEBUG 09:38:41 リクエストは名前 'default' とテンプレート '{controller=Home}/{action=Index}/{id?}' を持つルートに首尾よくマッチングしました。 DEBUG 09:38:41 Request successfully matched the route with name 'default' and template '{controller=Home}/{action=Index}/{id?}'. DEBUG 09:38:41 アクション Forums.Controllers.HomeController.Index を実行します。

DEBUG 09:38:41 実行中のアクション Forums.Controllers.HomeController.Index

INFO 09:38:41 Executing action method Forums.Controllers.HomeController.Index with arguments () - ModelState is Valid'.

INFO 09:38:41 アクションメソッド Forums.Controllers.HomeController.Index を実行中。

..

このログをオフにする方法はまだ見つかりませんでした...。

これは私の Configure メソッドで Startup クラスで使用されます。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddProvider(new Log4NetProvider());

    if (env.IsDevelopment())
    {
        app.UseBrowserLink();
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");

        // For more details on creating database during deployment see http://go.microsoft.com/fwlink/?LinkID=615859
        try
        {
            using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
                .CreateScope())
            {
                serviceScope.ServiceProvider.GetService<ApplicationDbContext>()
                     .Database.Migrate();
            }
        }
        catch { }
    }

    app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());

    app.UseStaticFiles();

    app.UseIdentity();

    // To configure external authentication please see http://go.microsoft.com/fwlink/?LinkID=532715

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

そして、これが私のproject.jsonファイルです。

"dependencies": {
  "EntityFramework.Commands": "7.0.0-rc1-final",
  "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
  "log4net": "2.0.5",
  "Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
  "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
  "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
  "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
  "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
  "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
  "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
  "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
  "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
  "Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
  "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
  "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
  "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
  "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
  "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final"
},

"commands": {
  "web": "Microsoft.AspNet.Server.Kestrel",
  "ef": "EntityFramework.Commands"
},

"frameworks": {
  "dnx451": { }
},


更新しました。

log4netのプロバイダを取られた ここから

どのように解決するのですか?

何か見落としているのかわかりませんが、Microsoft のログのログレベルを上げればいいだけではありませんか?

Edit appsettings.json (仮に .AddJsonFile("appsettings.json", ...) )

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Trace",
      "System": "Information",
      "Microsoft": "Information"

への

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Trace",
      "System": "Information",
      "Microsoft": "None"

あるいは、環境変数による同じ修正(仮に .AddEnvironmentVariables() )

Logging:LogLevel:Microsoft=None

より具体的に記述することも可能です。 Microsoft.AspNetCore.Hosting.Internal.WebHostInformation .

"Microsoft": "Information",  
"Microsoft.AspNetCore.Mvc.Internal": "Warning",
"Microsoft.AspNetCore.Authentication":  "Warning"

もしこれが log4net