是否可以在Program.cs Main方法中获得ILogger?我想将它传递给在该方法中创建的服务。
我只在SO How do I write logs from within Startup.cs上找到了这个,但是在Startup.cs中记录了这个。
答案 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)
这就是我在ILogger
内Startup.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
中的通用类型按预期工作。