加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core – ASP.Net 5登录类库

发布时间:2020-12-16 09:55:37 所属栏目:asp.Net 来源:网络整理
导读:我对依赖注入有点新意.我正在尝试使用ASP.NET 5,并且正在努力弄清楚如何在ASP.NET 5类库中使用服务.特别是日志和EF数据访问等简单的事情. 例如,我在这里遵循指南: http://docs.asp.net/en/latest/fundamentals/logging.html 这使我能够登录主应用程序.然后,
我对依赖注入有点新意.我正在尝试使用ASP.NET 5,并且正在努力弄清楚如何在ASP.NET 5类库中使用服务.特别是日志和EF数据访问等简单的事情.

例如,我在这里遵循指南:
http://docs.asp.net/en/latest/fundamentals/logging.html

这使我能够登录主应用程序.然后,如何在类库中输出日志事件?

我知道从类库中引用主应用程序并想弄清楚如何正确地执行它是不好的做法.

解决方法

通过传递ILogger< YourClass>为您的类创建记录器在构造函数中与示例完全相同:

public class MyClass : IMyClass
{
     private readonly ILogger<MyClass> _logger;

     public (ILogger<MyClass> logger)
     {
        _logger = logger;
      }

    public void MyMethod()
    {
        _logger.LogInformation("a log");
    }
}

或传递ILoggerFactory:

public class MyClass: IMyClass
{
     private readonly ILogger _logger;

     public (ILoggerFactory loggerFactory)
     {
        _logger = loggerFactory.CreatLogger("MyClass");
      }

    public void MyMethod()
    {
        _logger.LogInformation("a log");
    }
}

并在Dependency Injection之前解决你的课程:

services.AddTransient<IMyClass,MyClass>();

然后你可以在你的控制器中使用它:

[Route("api/[controller]")]
public class TodoController : Controller
{
    private readonly IMyClass _myClass;
    private readonly ILogger<TodoController> _logger;

    public TodoController(IMyClass myClass,ILogger<TodoController> logger)
    {
        _myClass = myClass;
        _logger = logger;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读