2016-09-22 6 views
3

Я добавил регистрацию в основное приложение asp.net, используя отличную библиотеку Serilog. Я добавил приемники для консоли Sql Server и Literate.
Раковина sql-сервера отлично работает, но, это немного неловко, я не знаю, как отображать журналы в окне консоли.
Это то, что ив попробовал:Где находятся консольные журналы в основном приложении asp.net, размещенном IIS

  1. В опубликованном каталоге я запустить команду Dotnet запустить но получил ошибку о том, что project.json не существует. Это, конечно, работает, если я запускаю команду на моей машине dev, где находится этот файл. Журналам отображается открытая консоль.
  2. Я также попытался запустить ех непосредственно, и это говорит, что это прослушивает: http://localhost:5000, но регистрация не отображались в окне консоли.

Вот код:

public Startup(IHostingEnvironment env) 
    { 
     var builder = new ConfigurationBuilder() 
      .SetBasePath(env.ContentRootPath) 
      .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
      .AddEnvironmentVariables(); 
     Configuration = builder.Build(); 

     ConfigureLogging(); 
    } 

    private void ConfigureLogging() 
    { 
     Log.Logger = new LoggerConfiguration() 
      .MinimumLevel.Verbose() 
      .WriteTo.LiterateConsole(LogEventLevel.Verbose) 
      .WriteTo.RollingFile(".\\Logs\\log-{Date}.txt") 
      .WriteTo.MSSqlServer(Configuration.GetConnectionString("Logging"), "Logs"/*, columnOptions: new ColumnOptions()*/) 
      .CreateLogger(); 
    } 

    public IConfigurationRoot Configuration { get; } 

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime) 
    { 
     app.Use(async (context, next) => 
     { 
      await next(); 

      // If there's no available file and the request doesn't contain an extension, we're probably trying to access a page. 
      // Rewrite request to use app root 
      if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value)) 
      { 
       context.Request.Path = "/"; // Put your Angular root page here 
       await next(); 
      } 
     }); 

     loggerFactory 
      .AddSerilog(); 

     // Ensure any buffered events are sent at shutdown 
     appLifetime.ApplicationStopped.Register(Log.CloseAndFlush); 

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

     app.UseDefaultFiles(); 
     app.UseStaticFiles(); 

     //app.UseCors(builder => builder.AllowAnyOrigin()); 
     app.UseMvc(); 



     //app.UseHangfireDashboard();    // Will be available under http://localhost:5000/hangfire 
     //app.UseHangfireServer(); 
    } 

Как отображать журналы в окне консоли?

+0

Пожалуйста, покажите нам, как вы настраиваете свой журнал. –

+0

Sure Fabricio Я вставлю код – ashilon

ответ

2

В IIS консольные журналы не собираются. Вам нужно будет использовать один из других приемников для размещенного приложения IIS, например, скопированный файл, который вы настроили.

+0

Эй, комментарий самого мастера :-) Спасибо большое Николас – ashilon