- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
为了调试启动失败的 .NET Core 应用程序,我想从 startup.cs 文件中写入日志。我在文件中设置了日志记录,可以在 startup.cs 文件之外的应用程序的其余部分中使用,但不确定如何从 startup.cs 文件本身写入日志。
最佳答案
.Net 核心 3.1
不幸的是,对于 ASP.NET Core 3.0,情况又有所不同。默认模板使用 HostBuilder
(而不是 WebHostBuilder
),它设置了一个新的通用主机,可以托管多个不同的应用程序,不限于 Web 应用程序。这个新主机的一部分还包括删除之前为 Web 主机存在的第二个依赖项注入(inject)容器。这最终意味着您将无法将除 IConfiguration
之外的任何依赖项注入(inject) Startup
类。因此,您将无法在 ConfigureServices
方法期间登录。但是,您可以将记录器注入(inject) Configure
方法并在那里记录:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILogger<Startup> logger)
{
logger.LogInformation("Configure called");
// …
}
如果您绝对需要登录ConfigureServices
,那么您可以继续使用WebHostBuilder
,它将创建遗留的WebHost
可以将记录器注入(inject) Startup
类。请注意,虚拟主机很可能会在将来的某个时候被删除。因此,您应该尝试找到适合您的解决方案,而无需在 ConfigureServices
中登录。
.NET 核心 2.x
随着 ASP.NET Core 2.0 的发布,这发生了显着变化。在 ASP.NET Core 2.x 中,日志记录是在主机生成器中创建的。这意味着默认情况下可以通过 DI 进行日志记录,并且可以将其注入(inject)到 Startup
类中:
public class Startup
{
private readonly ILogger<Startup> _logger;
public IConfiguration Configuration { get; }
public Startup(ILogger<Startup> logger, IConfiguration configuration)
{
_logger = logger;
Configuration = configuration;
}
public void ConfigureServices(IServiceCollection services)
{
_logger.LogInformation("ConfigureServices called");
// …
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
_logger.LogInformation("Configure called");
// …
}
}
关于c# - 如何从 Startup.cs 中写入日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41287648/
我有 2 个 .cs 文件,每个文件中都有一个类。如何在 Form2.cs 中的另一个类中调用 Form1.cs 中的一个类中的方法? 看起来像这样...... Form1.cs public par
我正在尝试了解指针的移动方式。以下是程序,我知道如果 int cs={1,2,3}; 然后cs指向cs[0]我不清楚的是 *cs 指向什么。 #include int main() {
我是 ASP.NET Core 新手。我正在使用 ASP.NET Core 7。我读到在 ASP.NET Core 7 中他们删除了 Startup.cs。有人可以告诉我如何在此示例中将 Startu
所以我知道一般来说,这是不可能的,因为Jon Skeet said so . 但是我的 .cs 文件是简单的类,在顶部有一个或两个 usings。我需要一个包含所有类的文件,这样我就可以将它作为单个文
到目前为止,基本上我的脚本将值发送到网关,然后被重定向到 CS 购物车。在该页面中,我获取返回的值并对其进行操作。 我使用 fn finish 和 fn 更改订单状态来完成订单,但无论我做什么,我都会
我需要一个匹配所有以 .cs 结尾的字符串的正则表达式,但如果它们以 .g.cs 结尾,则它们不应该匹配。我正在使用 .NET 正则表达式。 最佳答案 如果是 .cs 而不是 .g.cs,这将匹配结尾
到目前为止,基本上我的脚本将值发送到网关,然后被重定向到 CS 购物车。在该页面中,我获取返回的值并对其进行操作。 我使用 fn finish 和 fn 更改订单状态来完成订单,但无论我做什么,我都会
我的 Form.cs 中有一个函数,我想在我的 program.cs 中调用它 但是如果函数不是静态的,program.cs就不能用了。如果它是静态的,则 Form.cs 无法使用它,因为它涉及非静态
因此,当我抓取不同解决方案的一些文件并将它们粘贴到不同的解决方案中时,我的 Mainform 和设计师分离了。如果我运行我的程序,表格会正确显示,但是当我在设计模式下查看我的表格时,它是一个空白表格。
我有一个用户控件 (UserControl1.ascx),我对其 cs 文件进行了更改。UserControl1.ascx 正被两个或多个使用 LoadControl 的 aspx 文件使用.我不想部
我正在学习一些 Xamarin 开发。当我研究 Xamarin 项目的例子时,like this one ,我有时会看到一个页面有一个与 xaml 文件及其代码隐藏文件同名的神秘文件,但以 *CS.c
是的,这有点毫无意义,但我想知道......我的 MVC 应用程序中所有这些代码隐藏文件都困惑了。据我所知,我需要这些文件的唯一原因是告诉 ASP.NET 我的页面是从 ViewPage 而不是 Pa
我已经从一个不再可用的人那里继承了一个网站。在已部署的文件夹中,我有 Config.aspx(请参阅代码)。但是我找不到代码隐藏文件。配置页面有效。我在哪里可以找到 .cs 文件? 谢谢
在为 Outlook(或其他潜在的 Office 程序)开发插件时,在主类上调用方法可能很有用,但是如何从事件处理程序(例如功能区中的 button_click 事件)中执行此操作。 最佳答案 使用:
我已经创建了 PlayPage.xaml、PlayPage.xaml.cs 和 Game.cs 文件。PlayPage.xaml.cs 有两个变量,windowWidth 和 windowHeight
我一直在关注使用 Caliburn Micro 的 MVVM 模式教程 https://www.youtube.com/watch?v=laPFq3Fhs8k .xaml.cs 和 ViewModel
我试图将一个值(来自一个对象)放在一个变量中,并将它放在一个表单的文本框中。 表单代码如下: public Form1(Deck mainDeck) { InitializeC
我知道这很基础,但我找不到任何关于如何在 MSDN、Google 搜索和 stackoverflow 之间执行此操作的指南/教程。 我创建了一个新的 Windows 窗体应用程序,这里我有 Progr
VS2017 15.4.1 ASP.NET MVC 5.2.3 T4MVC 4.0.0 AutoT4MVC 1.5.3 再加工者 我在这个项目中已经使用 T4MVC] 好几个月了,没有任何问题。然而,
我正在尝试配置 kestrel,以便当它处于原始模式时在特定端口上运行。但是这样做似乎 launchsettings.json 需要传递命令行参数才能这样做,因为没有直接选项并且它总是在端口 5000
我是一名优秀的程序员,十分优秀!