在Program.cs中登录

时间:2017-07-20 16:59:48

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

是否可以在Program.cs Main方法中获得ILogger?我想将它传递给在该方法中创建的服务。

我只在SO How do I write logs from within Startup.cs上找到了这个,但是在Startup.cs中记录了这个。

2 个答案:

答案 0 :(得分:11)

在谷歌搜索后偶然发现了答案。

using System;
using Microsoft.Extensions.Logging;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var logFactory = new LoggerFactory()
            .AddConsole(LogLevel.Debug)
            .AddDebug();

            var logger = logFactory.CreateLogger<Type>();

            logger.LogInformation("this is debug log");
        }
    }
}

感谢https://askguanyu.wordpress.com/2016/09/26/net-core-101-e06-net-core-logging/

答案 1 :(得分:2)

这就是我在ILoggerStartup.cs Program.cs(在我的情况下是Log4Net)中配置的public static void Main(string[] args) { var host = BuildWebHost(args); ILogger logger = host.Services.GetService<ILogger<Program>>(); try { logger.LogInformation("Starting web host"); host.Run(); } catch (Exception ex) { logger.LogCritical(ex, "Starting web host failed."); } } 接口设置工作的方式:

using Microsoft.Extensions.DependencyInjection;
  • 添加GetService,以便chatserver.cpp中的通用类型按预期工作。