新建了一个asp.net core的应用,使用Log4net记录日志,
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureLogging(loggingBuider => { //配置Log4net为log组件 loggingBuider.AddLog4Net("Config\\Log4net.config");//使用相对路径 }) .UseServiceProviderFactory(new AutofacServiceProviderFactory())//设置服务提供者为autofac .ConfigureWebHostDefaults(webBuilder => { // 设置Startup为启动类型 webBuilder.UseStartup<Startup>(); });
Service层通过依赖注入使用 ILoggerFactory,代码如下
private ILogger<TestService> _logger; public TestService(ILoggerFactory loggerFactory) : base(loggerFactory) { this._logger = loggerFactory.CreateLogger<TestService>(); }
Service是一个独立的类库,现在新建了一个控制台应用程序,也引用到了Service.DLL,现在无法通过依赖注入的方式拿到ILoggerFactory 对象,请问控制台应用程序能像asp.net core程序那样配置Log4net组件吗?
可以参考一下 调用博客园 open api 的客户端示例代码 中的 .net core 控制台程序代码。
我这版控制台应用并没有使用HostBuilder
@爱杨洋真是太好了: 参考 在.NET Core控制台程序中使用依赖注入
可以用第三方依赖注入容器
autofac? 但是这个怎么在控制台使用呢