【问题标题】:ASP.NET Core 2.2 + IIS: Where can I see logs (ILogger) for my app in IIS on server?ASP.NET Core 2.2 + IIS:我在哪里可以在服务器上的 IIS 中查看我的应用程序的日志 (ILogger)?
【发布时间】:2018-11-19 15:33:34
【问题描述】:

我使用 ASP.NET Core 内置记录器提供程序 (ILogger),但不知道在哪里可以查看远程 IIS 服务器上的日志

【问题讨论】:

  • 这似乎非常基于意见。作为程序员,您可以选择希望将日志放在哪里。该程序不会将您锁定为一种单一的日志记录/输出形式
  • 我的意思是完全内置的 Asp.net 核心记录器。是否可以使用 asp.net core 中的内置记录器登录远程 IIS 服务器?

标签: logging asp.net-core asp.net-core-2.0


【解决方案1】:

这取决于您使用的记录器。默认控制台记录器不会创建持久日志。 您可以使用 Windows 事件日志,或添加像 Serilog 这样的第 3 方记录器来获得持久性日志。

查看有关记录https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-2.1的文档

在页面底部,它谈到了内置的记录器。但也可以使用其他 3rd 方记录器。您可以使用多个记录器。

【讨论】:

    【解决方案2】:

    我来这里是为了寻找一种在文件中查看 ASP.NET Core 6.0 应用程序的日志输出的方法。根据the docs: ASP.NET Core 不包含用于将日志写入文件的日志记录提供程序。要从 ASP.NET Core 应用程序将日志写入文件,请考虑使用第三方日志记录提供程序。

    但是,我们发现我们可以使用控制台提供程序将日志写入文件:

    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
        {
            logging.ClearProviders();
            logging.AddConsole();
        });
    

    并在 web.config 中启用 stdoutLoging:

    <aspNetCore processPath="dotnet" arguments=".\myapp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    

    不确定这是否是最好的长期方法,但它有助于快速排除故障。如果您尝试这样做,请确保您正在写入的文件夹存在并且 IIS_IUSRS 具有写入权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多