0

我已经使用 IIS 8 在 Windows Server 2012 上部署了一个 Asp.net Core 2 Web 应用程序。

我无法将“信息”记录到日志文件中,它只记录“警告”。我在此链接之后创建了一个自定义记录器:

https://www.infoworld.com/article/3235249/application-development/how-to-work-with-logging-in-aspnet-core.html

当部署在我的本地主机上时,它会完成预期的工作。我还启用了权限,因此有一些日志记录确实有效,例如标准输出日志。

但是,为了记录保存,我也想存储我的其他重要日志。

下面是我的日志文件 IIS 上的日志文件 代码片段的屏幕截图:在 StartUp.cs 配置方法中

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, 
        ILoggerFactory loggerFactory )
    {

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

        loggerFactory.AddProvider(new CustomLoggerProvider(new CustomLoggerProviderConfiguration
        {
            LogLevel = LogLevel.Information
        },env.ContentRootPath));

        app.UseStaticFiles();

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

代码片段:实际创建文件的函数

        private void WriteToLog(string message)
    {

        ////When Date change create new file.
        string filePath = _hostingPath + "\\test\\" + "Web_" + DateTime.Today.ToString("yyyy_MM_dd") + ".txt";

        FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.Write);
        using (StreamWriter streamWriter = new StreamWriter(fs))
        {
            streamWriter.WriteLine(message);
            streamWriter.Close();
        }
    }

另外,我知道将日志存储在服务器上不是一个好习惯,因为它会占用空间。有没有其他方法可以建议存储日志请告诉我?

此外,在 IIS 上未显示的 LogLevel“信息”问题中,我们将不胜感激。

4

0 回答 0