微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

登录ASP.NET Core Main

如何解决登录ASP.NET Core Main

我有一个带有简单MainCreateHostBuilder的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 举报,一经查实,本站将立刻删除。