我目前有几个.Net windows服务在我的服务器上运行。有没有办法附加一个控制台应用程序到服务,以获得所有的iLogger数据?我遇到过这样的问题:服务作为控制台应用程序/工人服务运行完美,但一旦我作为windows服务运行它,它就坐在那里什么也不做。我确实找到了一篇关于将VS调试器附加到进程的文章,但这对我们的网络安全不起作用。我也愿意听取任何其他建议。
7eumitmz1#
技术上的答案是否定的,但是正如@Fildor提到的,你可以设置某种类型的日志接收器,文件记录器只是一个例子,但是你也可以让日志发送电子邮件,发布到一些云记录服务,比如splunk或cloudwatch,等等。您可能会遇到的一个问题是,您需要在ILogger可用并为您正确配置之前捕获错误。下面是我使用NLog捕获启动错误时遵循的指南:https://alistairevans.co.uk/2019/10/04/asp-net-core-3-0-logging-in-the-startup-class-with-nlog/在最新的.NET版本中,Startup类不再是必需的,因此我将它们的示例修改为Program.cs中的代码:
// NLog: setup the nlog config first NLogBuilder.ConfigureNLog("nlog.config"); try { var host = Host.CreateDefaultBuilder(args) .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); }) // Use NLog to provide ILogger instances. .UseNLog() .Build(); host.Run(); } catch (Exception ex) { var logger = nlogLoggerProvider.CreateLogger(typeof(Program).FullName); }
}下面是可以在nlog配置文件中配置的可用日志接收器列表:https://nlog-project.org/config/您可能已经在使用的其他日志提供程序(如Serilog、Log 4 Net等)也可以实现同样的功能。
1条答案
按热度按时间7eumitmz1#
技术上的答案是否定的,但是正如@Fildor提到的,你可以设置某种类型的日志接收器,文件记录器只是一个例子,但是你也可以让日志发送电子邮件,发布到一些云记录服务,比如splunk或cloudwatch,等等。
您可能会遇到的一个问题是,您需要在ILogger可用并为您正确配置之前捕获错误。下面是我使用NLog捕获启动错误时遵循的指南:https://alistairevans.co.uk/2019/10/04/asp-net-core-3-0-logging-in-the-startup-class-with-nlog/
在最新的.NET版本中,Startup类不再是必需的,因此我将它们的示例修改为Program.cs中的代码:
}
下面是可以在nlog配置文件中配置的可用日志接收器列表:https://nlog-project.org/config/
您可能已经在使用的其他日志提供程序(如Serilog、Log 4 Net等)也可以实现同样的功能。