小编Dan*_*iel的帖子

Microsoft Owin Logging - Web Api 2 - 如何创建记录器?

我正在尝试使用Web Api 2和Owin向我的应用程序添加日志记录,所以我开始使用Microsoft Owin Logging,这需要一个ILoggerILoggerFactory已经实现的,当我需要在STARTUP方法或任何Owin Middleware组件.

例如,当我在Startup方法中时,我可以使用以下方法创建记录器:

    public void Configuration(IAppBuilder app)
    {
        // Creates configuration
        var configuration = new HttpConfiguration();

        // Configure WebApi Settings
        WebApiConfig.Register(configuration);

        app.SetLoggerFactory(new OwinLog4NetLoggerFactory("Default"));

        var logger = app.CreateLogger<Startup>();
        logger.WriteInformation("test log");

        // Enabled WebApi in OWIN
        app.UseWebApi(configuration);
    }
Run Code Online (Sandbox Code Playgroud)

其中"OwinLog4NetLoggerFactory"是我的自定义ILoggerFactory实现.

到目前为止,这么好......但是......当我在实际的web api动作方法中时,如何创建记录器?...我尝试访问Request.GetOwinEnvironment()并且记录器工厂不在字典中.

例如:

public class AccountController : ApiController
{
    public int Get(int id)
    {
        // Create logger here

        return id + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以创建一个静态类,引用Logger Factory甚至是注入来将记录器添加到api控制器,但这对于应该存在的东西来说似乎太复杂了.

任何想法,将不胜感激.

c# owin asp.net-web-api2

10
推荐指数
2
解决办法
9749
查看次数

如何增加请求超时时间?

如何增加Get或GetTaskAsync的超时时间?(使用Facebook C#SDK 6)

好像他们有15秒的超时时间。

facebook-c#-sdk

1
推荐指数
1
解决办法
749
查看次数

标签 统计

asp.net-web-api2 ×1

c# ×1

facebook-c#-sdk ×1

owin ×1