public static IApplicationBuilder UseNebuLogException( this IApplicationBuilder app, NebuLogExceptionMiddleWareOption option, INebuLogger <NebuLogExceptionMiddleWare> logger) { return(app.UseMiddleware <NebuLogExceptionMiddleWare>(option, logger)); }
public NebuLogExceptionMiddleWare( NebuLogExceptionMiddleWareOption option, INebuLogger <NebuLogExceptionMiddleWare> logger) { _option = option; _logger = logger; }
public NebuLogExceptionMiddleWare( RequestDelegate next, NebuLogExceptionMiddleWareOption option, INebuLogger <NebuLogExceptionMiddleWare> logger) { _next = next; _option = option; _logger = logger; }
//INebuLogger _logger; //=================================================================================== public MainWindow(IServiceProvider services, ILoggerFactory factory, INebuLogger logger) : base() { //====================================sample code演示================================= // 注意:无法直接从DI框架获取INebuLogger实例,如果通过构造器注入会得到null // 调用CreateLogger也不能直接用this.Name,因为MainWindow是在App.Xaml.cs中OnStartup()通过依赖注入的,XAML中的Name属性标签无效。 _logger = factory.CreateLogger(this.GetType().Name); _logger.Log <MainWindow>( LogLevel.Information, //loglevel new EventId(0, this.Name), //eventId this, //state null, //exception (app, e) => $"{Assembly.GetExecutingAssembly().GetName().Name}.{app.GetType().Name} initated."); // ILogger记录的日志信息能够被NebuLog服务器收到,可能是asp.net core日志系统已经添加了INebuLogger,但是程序代码获取实例写得不正确。 //=================================================================================== InitializeComponent(); }
public HomeController(INebuLogger <HomeController> logger) { _logger = logger; //(_logger as INebuLog).AddCustomStats("customStat", "customStat", "green"); }