I am using Microsoft.Owin.Hosting
to host the following, very simple web app.
Here is the call to start it:
WebApp.Start<PushServerStartup>("http://localhost:8080/events");
Here is the startup class I am using:
public class PushServerStartup
{
public void Configuration(IAppBuilder app)
{
app.MapHubs();
}
}
I am running this inside a console application that does a lot of other things including routing trace writing to certain files etc. But all of a sudden (when activating the OWIN hosting) I am seeing trace messages written to the console that are normally routed somewhere else.
Obviously there are some trace listeners active in the OWIN hosting framework. How can I switch them off?
I found a solution myself. After studying the Katana source code it seems like you need to register your own
ITraceOutputFactory
instance to overrule the default trace listener (which is writing to the console).Here is the new start call:
And here is a dummy trace factory (maybe not the best solution but you can replace it with something serving your purpose a little better):
I had the same issue, I was self hosting 4 instances in one process and for each request was getting 4 lots of messages traced to console.
I simply removed the TraceListener instance
"HostingTraceListener" is defined in the owin source code so I guess could change - http://katanaproject.codeplex.com/SourceControl/latest#src/Microsoft.Owin.Hosting/Engine/HostingEngine.cs
I did this after
An alternative to the answer from meilke that works with latest Katana self-host (2.1.0):
NullTraceOutputFactory is similar to DummyFactory but using StreamWriter.Null instead of StringWriter: