如何解决登录ASP.NET Core Main
我有一个带有简单Main
和CreateHostBuilder
的ASP.NET Core 3 WebAPI。
public static void Main(String[] args)
{
CreateHostBuilder(args).Build().Run();
}
稍后登录我的控制器等即可正常工作。
但是如何在Main中记录可能的错误?
解决方法
您可以使用获取记录器
// Build the host and configurations
var host = CreateWebHostBuilder(args).Build();
using (var scope = host.Services.CreateScope())
{
// Get the registered logger service
var logger = scope.ServiceProvider.GetRequiredService<ILogger<YourClassName>>();
logger.LogInformation("Logger test");
}
// finally run the host
host.Run();
,
另一种方法.....此方法的优点是它是与HostBuilder分开的记录器,因此它甚至可以在构建Host之前记录事件。它也可以在整个类中使用,也可以在Program.cs中的Main内部使用。缺点是它不能使用appsettings.json文件进行配置(除非有人可以告诉我如何操作)。
public class Program
{
// The Program console apps private logger
private static ILogger _logger;
public static void Main(string[] args)
{
// Now create a logging object for the Program class.
ILoggerFactory loggerFactory = LoggerFactory.Create(builder => builder
.AddConsole()
.AddDebug()
);
_logger = loggerFactory.CreateLogger<Program>();
_logger.LogInformation("PROGRAM CLASS >>> The Program Console Class has started...");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。